Derive-C
Loading...
Searching...
No Matches
general.c
Go to the documentation of this file.
1#include <stdint.h>
2
4
5#define Foo_REFLECT(F) \
6 F(uint32_t, bing) \
7 F(char, baz) \
8 F(double, zing)
9
11DC_DERIVE_EQ(Foo)
14
15int main() {
16 Foo f = {.bing = 23, .baz = 'c', .zing = 3.14};
17 Foo g = {.bing = 23, .baz = 'c', .zing = 3.14};
18
19 DC_ASSERT(Foo_eq(&f, &g));
20 DC_ASSERT(!Foo_gt(&f, &g) && !Foo_lt(&f, &g));
21
22 Foo z = Foo_clone(&f);
23 z.bing += 10;
24 DC_ASSERT(Foo_gt(&z, &f));
25}
#define DC_DERIVE_CLONE(TYPE)
Definition clone.h:14
#define DC_DERIVE_STRUCT(TYPE,...)
Definition derive.h:13
#define DC_DERIVE_EQ(TYPE)
Definition eq.h:16
#define DC_DERIVE_ORD(TYPE)
Definition ord.h:17
#define DC_ASSERT(expr,...)
Definition panic.h:36
int main()
Definition staticbump.c:45