5#define Foo_REFLECT(F) \
18 Foo f = {.bing = 23, .baz =
'c', .zing =
'z'};
19 Foo g = {.bing = 23, .baz =
'c', .zing =
'z'};
24 DC_ASSERT(!Foo_gt(&f, &g) && !Foo_lt(&f, &g));
27 Foo z = Foo_clone(&f);
36 new_global)((
NS(
DC_LOGGER, global_config)){.stream = stdout, .ansi_colours =
true},
#define DC_DERIVE_CLONE(TYPE)
#define DC_DERIVE_STRUCT(TYPE,...)
#define DC_DERIVE_EQ(TYPE)
#define DC_DERIVE_ORD(TYPE)
#define DC_ASSERT(expr,...)
#define DC_SCOPED(type,...)
RAII in C. Call the destructor when the variable goes out of scope.
static void example_trait(DC_LOGGER *parent)
#define DC_LOGGER_NEW(...)