Lumiera
0.pre.03
»edit your freedom«
Lumiera API Documentation
Intro
Overview
Modules
+
Classes
Class List
Class Index
+
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
z
~
+
Functions
_
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
z
~
+
Variables
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
+
Typedefs
a
b
d
e
f
h
i
l
o
p
r
s
t
v
y
Enumerations
Enumerator
+
Related Functions
_
b
c
e
f
h
i
k
m
n
o
p
q
s
t
u
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
s
t
u
w
z
Typedefs
Enumerations
Enumerator
+
Files
File List
+
File 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
+
Functions
b
c
d
e
f
h
i
j
l
m
n
o
p
q
r
s
t
u
Variables
Typedefs
Enumerations
Enumerator
+
Macros
a
c
d
e
g
i
k
l
m
n
o
p
r
s
t
v
Related Pages
Examples
▼
Lumiera
►
Lumiera API Documentation
Intro
Overview
►
Modules
►
Classes
►
Namespaces
▼
Files
►
File List
►
File Members
Test List
Todo List
Deprecated List
►
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
typed-family-member-id-test.cpp
Go to the documentation of this file.
1
/*
2
TypedFamilyMemberID(Test) - verify type based member ID
3
4
Copyright (C)
5
2017, Hermann Vosseler <Ichthyostega@web.de>
6
7
**Lumiera** is free software; you can redistribute it and/or modify it
8
under the terms of the GNU General Public License as published by the
9
Free Software Foundation; either version 2 of the License, or (at your
10
option) any later version. See the file COPYING for further details.
11
12
* *****************************************************************/
13
14
21
#include "
lib/test/run.hpp
"
22
#include "
lib/typed-counter.hpp
"
23
24
25
namespace
lib
{
26
namespace
test
{
27
28
29
30
31
/*******************************************************************/
41
class
TypedFamilyMemberID_test
:
public
Test
42
{
43
44
void
45
run (Arg)
46
{
47
struct
X
{ };
48
struct
Y { };
49
struct
Z { };
50
51
CHECK (0 ==
FamilyMember<X>
{});
52
CHECK (1 ==
FamilyMember<X>
{});
53
CHECK (2 ==
FamilyMember<X>
{});
54
55
CHECK (0 ==
FamilyMember<Y>
{});
56
CHECK (1 ==
FamilyMember<Y>
{});
57
58
CHECK (0 ==
FamilyMember<Z>
{});
59
60
CHECK (2 ==
FamilyMember<Y>
{});
61
CHECK (3 ==
FamilyMember<Y>
{});
62
63
CHECK (1 ==
FamilyMember<Z>
{});
64
CHECK (2 ==
FamilyMember<Z>
{});
65
CHECK (3 ==
FamilyMember<Z>
{});
66
CHECK (4 ==
FamilyMember<Z>
{});
67
68
CHECK (4 ==
FamilyMember<Y>
{});
69
CHECK (5 ==
FamilyMember<Z>
{});
70
CHECK (3 ==
FamilyMember<X>
{});
71
CHECK (5 ==
FamilyMember<Y>
{});
72
CHECK (4 ==
FamilyMember<X>
{});
73
}
74
};
75
76
78
LAUNCHER (
TypedFamilyMemberID_test
,
"unit common"
);
79
80
81
}}
// namespace lib::test
typed-counter.hpp
Creating series of type-based contexts.
test
Definition:
run.hpp:40
lib::test::X
Definition:
custom-shared-ptr-test.cpp:39
lib
Implementation namespace for support and library code.
Definition:
common-services.cpp:54
run.hpp
Simplistic test class runner.
lib::FamilyMember
Utility to produce member IDs for objects belonging to a "Family", as defined by a distinguishing typ...
Definition:
typed-counter.hpp:203
lib::test::TypedFamilyMemberID_test
Definition:
typed-family-member-id-test.cpp:41
basics
typed-family-member-id-test.cpp
Generated on Fri Dec 13 2024 05:05:36 for Lumiera by
1.8.13