Add clean method for variant.
This commit is contained in:
1 parent
6d29968e34
commit
6cee535ccd
1 file changed
+7
-1
+7
-1
@@ -47,6 +47,7 @@
|
||||
VARIANTI_DEFINE_TEST_P(name, __VA_ARGS__) \
|
||||
VARIANTI_DEFINE_SETTER(name, __VA_ARGS__) \
|
||||
VARIANTI_DEFINE_GETTER(name, __VA_ARGS__) \
|
||||
VARIANTI_DEFINE_CLEAN_FUNC(name, __VA_ARGS__) \
|
||||
M_IF(VARIANTI_ALL_HASH(__VA_ARGS__)) \
|
||||
(VARIANTI_DEFINE_HASH(name, __VA_ARGS__),) \
|
||||
M_IF(VARIANTI_ALL_EQUAL(__VA_ARGS__)) \
|
||||
@@ -164,7 +165,6 @@
|
||||
VARIANTI_GET_CLEAR a (my -> value. VARIANTI_GET_FIELD a); \
|
||||
break;
|
||||
|
||||
|
||||
#define VARIANTI_DEFINE_TEST_P(name, ...) \
|
||||
static inline bool M_C(name, _empty_p)(M_C(name,_t) my) { \
|
||||
return my->type == M_C(name, _EMPTY); \
|
||||
@@ -389,6 +389,12 @@
|
||||
if (!b) return false; \
|
||||
}
|
||||
|
||||
#define VARIANTI_DEFINE_CLEAN_FUNC(name, ...) \
|
||||
static inline void M_C(name, _clean)(M_C(name,_t) my) \
|
||||
{ \
|
||||
M_C(name, _clear)(my); \
|
||||
} \
|
||||
|
||||
#define VARIANTI_OPLIST(name, ...) \
|
||||
(INIT(M_C(name,_init)), \
|
||||
INIT_SET(M_C(name, _init_set)), \
|
||||
|
||||
Reference in new issue
Block a user