1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#include "../../src/include/tagged_union.hpp"
TAGGED_UNION_EX(TestTu, (), Foo, (
(Foo, struct {
}),
(Bar, struct {
}),
(Baz, unsigned int)
),
(), (), ()
);
TAGGED_UNION(TestTu2, Foo,
(Foo, struct {
}),
(Bar, struct {
}),
(Baz, unsigned int)
);
int main()
{
TestTu tmp;
tmp = TestTu(123);
TestTu tmp2 = TestTu::make_Bar({});
TU_MATCHA( (tmp), (e),
(Foo,
),
(Bar,
),
(Baz,
)
)
TU_MATCHA((tmp,tmp2), (e,e2),
(Foo,
),
(Bar,
),
(Baz,
)
)
}
|