summaryrefslogtreecommitdiff
path: root/vsproject/tu_test/main.cpp
blob: 48f7a26c5420cb21d6523100caac0ce8bfe176c1 (plain)
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,
		)
	)
}