Add new macros _DEF_AS so that

user can define its own name for the generated types.
This commit is contained in:
Patrick Pelissier committed 2020-10-03 14:07:14 +02:00
1 parent 63eee6bba3
commit e04b120d41
4 files changed
+80 -6

No files matched your search

+15
View File
@@ -38,6 +38,9 @@ ARRAY_DEF(array_min3_z, testobj_t, (CLEAR(testobj_clear)))
ARRAY_DEF(array_ulong, uint64_t)
ARRAY_DEF_AS(array_double, ArrayDouble, ArrayDoubleIt, double)
#define M_OPL_ArrayDouble() ARRAY_OPLIST(array_double, M_DEFAULT_OPLIST)
static void test_uint(void)
{
array_uint_t v;
@@ -350,10 +353,22 @@ static void test_d(void)
array_uint_clear(a2);
}
static void test_double(void)
{
M_LET( (tab, 0.0, 1.0, 2.0, 3.0), ArrayDouble) {
double ref = 0.0;
for M_EACH(i, tab, ArrayDouble) {
assert (*i == ref);
ref += 1.0;
}
}
}
int main(void)
{
test_uint();
test_mpz();
test_d();
test_double();
exit(0);
}
+26
View File
@@ -40,6 +40,12 @@ LIST_DEF(list_min_z, testobj_t, (INIT_SET(testobj_init_set), SET(testobj_set), C
LIST_DUAL_PUSH_DEF(list2_min_z, testobj_t, (INIT_SET(testobj_init_set), SET(testobj_set), CLEAR(testobj_clear)))
LIST_DEF_AS(list_double, ListDouble, ListDoubleIt, double)
#define M_OPL_ListDouble() LIST_OPLIST(list_double, M_DEFAULT_OPLIST)
LIST_DUAL_PUSH_DEF_AS(list_doubleDP, ListDoubleDP, ListDoubleDPIt, double)
#define M_OPL_ListDoubleDP() LIST_OPLIST(list_doubleDP, M_DEFAULT_OPLIST)
static void test_uint(void)
{
list_uint_t v;
@@ -635,6 +641,25 @@ static void test_out_default_oplist(void)
}
#endif
static void test_double(void)
{
M_LET( (tab, 0.0, 1.0, 2.0, 3.0), ListDouble) {
double ref = 0.0;
for M_EACH(i, tab, ListDouble) {
assert (*i == ref);
ref += 1.0;
}
}
M_LET( (tab, 0.0, 1.0, 2.0, 3.0), ListDoubleDP) {
double ref = 0.0;
for M_EACH(i, tab, ListDoubleDP) {
assert (*i == ref);
ref += 1.0;
}
}
}
int main(void)
{
test_uint();
@@ -642,6 +667,7 @@ int main(void)
test_dual_push1();
test_dual_it1();
test_out_default_oplist();
test_double();
exit(0);
}