libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
Main Page
Related Pages
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
i
l
m
n
o
p
s
t
u
v
w
Variables
_
a
b
c
d
g
i
l
m
n
p
r
s
u
w
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Enumerations
a
b
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
u
v
Enumerator
a
b
c
d
e
h
j
l
m
n
s
t
u
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
~
Variables
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerations
a
c
d
e
f
m
o
p
r
s
t
Enumerator
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Related Functions
a
c
d
e
h
i
j
m
n
o
p
r
s
u
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
~
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
~
Variables
a
b
c
d
e
g
h
i
l
m
n
o
p
r
s
t
u
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
o
p
r
s
t
u
Enumerations
Enumerator
Macros
_
a
b
c
f
i
j
l
n
o
p
r
t
u
v
w
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
sizeof_void.hpp
Go to the documentation of this file.
1
#
ifndef
LIBJMMCG_CORE_SIZEOF_VOID_HPP
2
#
define
LIBJMMCG_CORE_SIZEOF_VOID_HPP
3
/******************************************************************************
4
** Copyright © 2019 by J.M.McGuiness, coder@hussar.me.uk
5
**
6
** This library is free software; you can redistribute it and/or
7
** modify it under the terms of the GNU Lesser General Public
8
** License as published by the Free Software Foundation; either
9
** version 2.1 of the License, or (at your option) any later version.
10
**
11
** This library is distributed in the hope that it will be useful,
12
** but WITHOUT ANY WARRANTY; without even the implied warranty of
13
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
** Lesser General Public License for more details.
15
**
16
** You should have received a copy of the GNU Lesser General Public
17
** License along with this library; if not, write to the Free Software
18
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*/
20
21
namespace
jmmcg
{
namespace
LIBJMMCG_VER_NAMESPACE
{
22
23
struct
a_zero_sized_class
{};
24
25
namespace
private_
{
26
27
/**
28
Avoid sizeof(void) warnings, give it a size of zero.
29
*/
30
template
<
class
T>
31
struct
give_void_a_size_of
{
32
enum
: std::size_t {
33
value
=
sizeof
(T)
34
};
35
};
36
template
<>
37
struct
give_void_a_size_of
<
void
> {
38
enum
: std::size_t {
39
value
=
std
::size_t()
40
};
41
};
42
template
<>
43
struct
give_void_a_size_of
<
a_zero_sized_class
> {
44
enum
: std::size_t {
45
value
=
std
::size_t()
46
};
47
};
48
49
}
50
51
} }
52
53
#
endif
core
sizeof_void.hpp
Generated on Tue May 11 2021 17:16:30 for libjmmcg by
1.9.2