Add method _set2 for tuple.

This commit is contained in:
Patrick Pelissier committed 2018-04-30 20:00:26 +02:00
1 parent 3d43bb260a
commit ac5b689950
2 files changed
+16

No files matched your search

+13
View File
@@ -36,6 +36,7 @@
TUPLE_DEFINE_INIT_SET(name, __VA_ARGS__) \
TUPLE_DEFINE_INIT_SET2(name, __VA_ARGS__) \
TUPLE_DEFINE_SET(name, __VA_ARGS__) \
TUPLE_DEFINE_SET2(name, __VA_ARGS__) \
TUPLE_DEFINE_CLEAR(name, __VA_ARGS__) \
TUPLE_DEFINE_GETTER(name, __VA_ARGS__) \
TUPLE_DEFINE_SETTER(name, __VA_ARGS__) \
@@ -132,6 +133,18 @@
TUPLE_GET_SET a ( my -> TUPLE_GET_FIELD a , org -> TUPLE_GET_FIELD a );
#define TUPLE_DEFINE_SET2(name, ...) \
static inline void M_C(name, _set2)(M_C(name,_t) my \
M_MAP(TUPLE_DEFINE_SET2_PROTO, __VA_ARGS__) \
) { \
M_MAP(TUPLE_DEFINE_SET2_FUNC , __VA_ARGS__) \
}
#define TUPLE_DEFINE_SET2_PROTO(a) \
, TUPLE_GET_TYPE a const TUPLE_GET_FIELD a
#define TUPLE_DEFINE_SET2_FUNC(a) \
TUPLE_GET_SET a ( my -> TUPLE_GET_FIELD a , TUPLE_GET_FIELD a );
#define TUPLE_DEFINE_CLEAR(name, ...) \
static inline void M_C(name, _clear)(M_C(name,_t) my) { \
M_MAP(TUPLE_DEFINE_CLEAR_FUNC , __VA_ARGS__) \
+3
View File
@@ -120,6 +120,9 @@ int main(void)
pair3_init_set2(p4, s, z);
int i = pair3_cmp (p3, p4);
assert (i == 0);
pair3_set2(p4, s, z);
i = pair3_cmp (p3, p4);
assert (i == 0);
my_mpz_set_ui (z, 1443);
pair3_set_value(p4, z);
i = pair3_cmp (p3, p4);