include
view_as_pointer.h
Go to the documentation of this file.
1
//
2
// Bareflank Hypervisor
3
//
4
// Copyright (C) 2015 Assured Information Security, Inc.
5
// Author: Rian Quinn <quinnr@ainfosec.com>
6
// Author: Brendan Kerrigan <kerriganb@ainfosec.com>
7
//
8
// This library is free software; you can redistribute it and/or
9
// modify it under the terms of the GNU Lesser General Public
10
// License as published by the Free Software Foundation; either
11
// version 2.1 of the License, or (at your option) any later version.
12
//
13
// This library is distributed in the hope that it will be useful,
14
// but WITHOUT ANY WARRANTY; without even the implied warranty of
15
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
// Lesser General Public License for more details.
17
//
18
// You should have received a copy of the GNU Lesser General Public
19
// License along with this library; if not, write to the Free Software
20
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
22
#ifndef VIEW_AS_POINTER
23
#define VIEW_AS_POINTER
24
25
#include <type_traits>
26
27
// There are basically two different ways to print an integer as a pointer
28
// (i.e. 0xXXXXXXXXXXXXXXXX).
29
//
30
// - You can use the hex / dec stream modifiers, and set the fill and
31
// width. This is a lot of code, and the stream modifiers are stateful,
32
// so to use them, you must first save off the current modifiers, and
33
// then restore them after use.
34
//
35
// - Or, you could simply cast the integer as a pointer. This goes
36
// against the C++ Core Guidelines, but since the pointer is never
37
// dereferenced, it should not be an issue.
38
//
39
40
template
<
class
T,
41
class
=
typename
std::enable_if<
42
std::is_integral<T>::value
43
or
44
std::is_pointer<T>::value
45
>
::type
46
>
47
const
void
*
view_as_pointer
(
const
T val)
48
{
return
reinterpret_cast<
const
void
*
>
(val); }
49
50
#endif
view_as_pointer
const void * view_as_pointer(const T val)
Definition:
view_as_pointer.h:47
command_line_parser_command::type
type
Definition:
command_line_parser.h:33
Generated on Fri Apr 28 2017 22:12:08 by
1.8.14