diff options
| author | Tyge Løvset <[email protected]> | 2021-09-05 23:12:53 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-09-05 23:12:53 +0200 |
| commit | 44c64073662500684008c87e3a87f33b04e53c13 (patch) | |
| tree | 6a927fe91e6d2eee073cdce5d30ff87f5e709ce6 /include/stc/vec_test_new.c | |
| parent | b2dc4c367030232068338b9e7b3faee03c2db0a8 (diff) | |
| download | STC-modified-44c64073662500684008c87e3a87f33b04e53c13.tar.gz STC-modified-44c64073662500684008c87e3a87f33b04e53c13.zip | |
New usage style. only cvec is functional. see vec_test_new.c
Diffstat (limited to 'include/stc/vec_test_new.c')
| -rw-r--r-- | include/stc/vec_test_new.c | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/include/stc/vec_test_new.c b/include/stc/vec_test_new.c new file mode 100644 index 00000000..65bb0ff9 --- /dev/null +++ b/include/stc/vec_test_new.c @@ -0,0 +1,53 @@ +#include "cstr.h"
+#include "forward.h"
+
+forward_cvec(i32, int);
+forward_cvec(pnt, struct Point);
+
+struct MyStruct {
+ cvec_i32 intvec;
+ cvec_pnt pntvec;
+} typedef MyStruct;
+
+
+#define f_TAG i32
+#define i_VAL int
+#include "cvec.h"
+
+#define i_TAG f32
+#define i_VAL float
+#include "cvec.h"
+
+struct Point { int x, y; } typedef Point;
+int point_compare(const Point* a, const Point* b) {
+ int c = c_default_compare(&a->x, &b->x);
+ return c ? c : c_default_compare(&a->y, &b->y);
+}
+#define f_TAG pnt
+#define i_VAL Point
+#define i_CMP point_compare
+#include "cvec.h"
+
+#define i_VAL_str
+#include "cvec.h"
+
+
+int main()
+{
+ cvec_i32 vec = cvec_i32_init();
+ cvec_i32_push_back(&vec, 123);
+
+ cvec_f32 fvec = cvec_f32_init();
+ cvec_f32_push_back(&fvec, 123.3);
+
+ cvec_pnt pvec = cvec_pnt_init();
+ cvec_pnt_push_back(&pvec, (Point){42, 14});
+ cvec_pnt_push_back(&pvec, (Point){32, 94});
+ cvec_pnt_push_back(&pvec, (Point){62, 81});
+ cvec_pnt_sort(&pvec);
+ c_foreach (i, cvec_pnt, pvec)
+ printf(" (%d %d)", i.ref->x, i.ref->y);
+ puts("");
+ cvec_str svec = cvec_str_init();
+ cvec_str_emplace_back(&svec, "Hello, friend");
+}
\ No newline at end of file |
