Make INIT optional for TUPLE.
This commit is contained in:
1 parent
5eb5d2420e
commit
ce948bd9ce
2 files changed
+11
-2
No files matched your search
@@ -84,7 +84,8 @@ namespace m_tuple {
|
|||||||
#define TUPLEI_DEF2_B(name, ...) \
|
#define TUPLEI_DEF2_B(name, ...) \
|
||||||
TUPLE_DEFINE_TYPE(name, __VA_ARGS__) \
|
TUPLE_DEFINE_TYPE(name, __VA_ARGS__) \
|
||||||
TUPLE_DEFINE_ENUM(name, __VA_ARGS__) \
|
TUPLE_DEFINE_ENUM(name, __VA_ARGS__) \
|
||||||
TUPLE_DEFINE_INIT(name, __VA_ARGS__) \
|
M_IF(TUPLE_ALL_INIT(__VA_ARGS__)) \
|
||||||
|
(TUPLE_DEFINE_INIT(name, __VA_ARGS__),) \
|
||||||
TUPLE_DEFINE_INIT_SET(name, __VA_ARGS__) \
|
TUPLE_DEFINE_INIT_SET(name, __VA_ARGS__) \
|
||||||
TUPLE_DEFINE_INIT_SET2(name, __VA_ARGS__) \
|
TUPLE_DEFINE_INIT_SET2(name, __VA_ARGS__) \
|
||||||
TUPLE_DEFINE_SET(name, __VA_ARGS__) \
|
TUPLE_DEFINE_SET(name, __VA_ARGS__) \
|
||||||
@@ -421,6 +422,8 @@ namespace m_tuple {
|
|||||||
#define TUPLE_TEST_METHOD_P(method, trio) \
|
#define TUPLE_TEST_METHOD_P(method, trio) \
|
||||||
M_APPLY(TUPLE_TEST_METHOD2_P, method, M_OPFLAT trio)
|
M_APPLY(TUPLE_TEST_METHOD2_P, method, M_OPFLAT trio)
|
||||||
|
|
||||||
|
#define TUPLE_ALL_INIT(...) \
|
||||||
|
M_REDUCE2(TUPLE_TEST_METHOD_P, M_AND, INIT, __VA_ARGS__)
|
||||||
#define TUPLE_ALL_CMP(...) \
|
#define TUPLE_ALL_CMP(...) \
|
||||||
M_REDUCE2(TUPLE_TEST_METHOD_P, M_AND, CMP, __VA_ARGS__)
|
M_REDUCE2(TUPLE_TEST_METHOD_P, M_AND, CMP, __VA_ARGS__)
|
||||||
#define TUPLE_ALL_EQUAL(...) \
|
#define TUPLE_ALL_EQUAL(...) \
|
||||||
@@ -445,7 +448,7 @@ namespace m_tuple {
|
|||||||
M_REDUCE2(TUPLE_TEST_METHOD_P, M_AND, CLEAN, __VA_ARGS__)
|
M_REDUCE2(TUPLE_TEST_METHOD_P, M_AND, CLEAN, __VA_ARGS__)
|
||||||
|
|
||||||
#define TUPLEI_OPLIST(name, ...) \
|
#define TUPLEI_OPLIST(name, ...) \
|
||||||
(INIT(M_C(name,_init)), \
|
(M_IF_METHOD_ALL(INIT, __VA_ARGS__)(INIT(M_C(name,_init)),), \
|
||||||
INIT_SET(M_C(name, _init_set)), \
|
INIT_SET(M_C(name, _init_set)), \
|
||||||
SET(M_C(name,_set)), \
|
SET(M_C(name,_set)), \
|
||||||
CLEAR(M_C(name, _clear)), \
|
CLEAR(M_C(name, _clear)), \
|
||||||
|
|||||||
@@ -33,6 +33,11 @@ TUPLE_DEF2(pair,
|
|||||||
(value, testobj_t, TESTOBJ_OPLIST) )
|
(value, testobj_t, TESTOBJ_OPLIST) )
|
||||||
END_COVERAGE
|
END_COVERAGE
|
||||||
|
|
||||||
|
// Minimum definition
|
||||||
|
TUPLE_DEF2(pair_min,
|
||||||
|
(key1, string_t, (INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear))),
|
||||||
|
(key2, string_t, (INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear))))
|
||||||
|
|
||||||
// No cmp defined
|
// No cmp defined
|
||||||
TUPLE_DEF2(triple,
|
TUPLE_DEF2(triple,
|
||||||
(key, string_t, (INIT(string_init), INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear), CMP(string_cmp))),
|
(key, string_t, (INIT(string_init), INIT_SET(string_init_set), SET(string_set), CLEAR(string_clear), CMP(string_cmp))),
|
||||||
@@ -66,6 +71,7 @@ TUPLE_DEF2(rtuple2, (name, string_t), (value, int))
|
|||||||
|
|
||||||
TUPLE_DEF2(rtuple3, (name, string_t), (ituple2, rtuple2_t), (ituple, rtuple_t) )
|
TUPLE_DEF2(rtuple3, (name, string_t), (ituple2, rtuple2_t), (ituple, rtuple_t) )
|
||||||
|
|
||||||
|
|
||||||
static void check_swap(void)
|
static void check_swap(void)
|
||||||
{
|
{
|
||||||
pair_str_t p1, p2;
|
pair_str_t p1, p2;
|
||||||
|
|||||||
Reference in new issue
Block a user