Add ALGO_INIT_VA macro.
This commit is contained in:
1 parent
dd1a7c13f2
commit
3bd0744333
2 files changed
+16
No files matched your search
@@ -53,6 +53,11 @@
|
|||||||
(ALGOI_REDUCE_MAP(dest, cont, contOp, __VA_ARGS__), \
|
(ALGOI_REDUCE_MAP(dest, cont, contOp, __VA_ARGS__), \
|
||||||
ALGOI_REDUCE_MAP_ARG(dest, cont, contOp, __VA_ARGS__) ) )
|
ALGOI_REDUCE_MAP_ARG(dest, cont, contOp, __VA_ARGS__) ) )
|
||||||
|
|
||||||
|
#define ALGO_INIT_VA(dest, contOp, ...) do { \
|
||||||
|
M_GET_INIT contOp (dest); \
|
||||||
|
M_MAP2(ALGOI_INIT_VA_FUNC, (dest, M_GET_PUSH contOp, ) , __VA_ARGS__); \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
/********************************** INTERNAL ************************************/
|
/********************************** INTERNAL ************************************/
|
||||||
|
|
||||||
#define ALGOI_DEF(name, container_t, cont_oplist, type_t, type_oplist, it_t) \
|
#define ALGOI_DEF(name, container_t, cont_oplist, type_t, type_oplist, it_t) \
|
||||||
@@ -421,4 +426,7 @@
|
|||||||
M_GET_CLEAR M_GET_OPLIST cont_oplist (m_tmp); \
|
M_GET_CLEAR M_GET_OPLIST cont_oplist (m_tmp); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define ALGOI_INIT_VA_FUNC(d, a) \
|
||||||
|
M_RET_ARG2 d (M_RET_ARG1 d, a) ;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -35,6 +35,10 @@ static void test_list(void)
|
|||||||
ALGO_MAP(l, LIST_OPLIST(int), g, 100);
|
ALGO_MAP(l, LIST_OPLIST(int), g, 100);
|
||||||
|
|
||||||
list_int_clear(l);
|
list_int_clear(l);
|
||||||
|
|
||||||
|
ALGO_INIT_VA(l, LIST_OPLIST(int), 1, 2, 3, 4, 5);
|
||||||
|
assert (list_int_size(l) == 5);
|
||||||
|
list_int_clear(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_array(void)
|
static void test_array(void)
|
||||||
@@ -52,6 +56,10 @@ static void test_array(void)
|
|||||||
assert( algo_array_count(l, -1) == 0);
|
assert( algo_array_count(l, -1) == 0);
|
||||||
|
|
||||||
array_int_clear(l);
|
array_int_clear(l);
|
||||||
|
|
||||||
|
ALGO_INIT_VA(l, ARRAY_OPLIST(int), 1, 2, 3, 4, 5);
|
||||||
|
assert (array_int_size(l) == 5);
|
||||||
|
array_int_clear(l);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void test_string(void)
|
static void test_string(void)
|
||||||
|
|||||||
Reference in new issue
Block a user