Fix issue with C++ not performing like C...
This commit is contained in:
1 parent
faaad909d3
commit
b537ae6b5d
1 file changed
+5
-4
+5
-4
@@ -94,14 +94,15 @@
|
|||||||
#define VARIANTI_GET_SWAP(f,t,o) M_GET_SWAP o
|
#define VARIANTI_GET_SWAP(f,t,o) M_GET_SWAP o
|
||||||
|
|
||||||
#define VARIANTI_DEFINE_TYPE(name, ...) \
|
#define VARIANTI_DEFINE_TYPE(name, ...) \
|
||||||
|
enum M_C(name, _enum) { M_C(name, _EMPTY) \
|
||||||
|
M_MAP2(VARIANTI_DEFINE_UNION_ELE, name, __VA_ARGS__) \
|
||||||
|
}; \
|
||||||
typedef struct M_C(name, _s) { \
|
typedef struct M_C(name, _s) { \
|
||||||
enum M_C(name, _enum) { M_C(name, _EMPTY) \
|
enum M_C(name, _enum) type; \
|
||||||
M_MAP2(VARIANTI_DEFINE_UNION_ELE, name, __VA_ARGS__) \
|
|
||||||
} type; \
|
|
||||||
union { \
|
union { \
|
||||||
M_MAP(VARIANTI_DEFINE_TYPE_ELE , __VA_ARGS__) \
|
M_MAP(VARIANTI_DEFINE_TYPE_ELE , __VA_ARGS__) \
|
||||||
} value; \
|
} value; \
|
||||||
} M_C(name,_t)[1];
|
} M_C(name,_t)[1];
|
||||||
#define VARIANTI_DEFINE_UNION_ELE(name, a) \
|
#define VARIANTI_DEFINE_UNION_ELE(name, a) \
|
||||||
, M_C3(name, _, VARIANTI_GET_FIELD a)
|
, M_C3(name, _, VARIANTI_GET_FIELD a)
|
||||||
#define VARIANTI_DEFINE_TYPE_ELE(a) \
|
#define VARIANTI_DEFINE_TYPE_ELE(a) \
|
||||||
|
|||||||
Reference in new issue
Block a user