From 94b767679fc68c51aa0c80bdada35b9978989199 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 18 Jul 2025 21:33:50 +0300 Subject: add supertemplate handling --- test/vec.h | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) delete mode 100644 test/vec.h (limited to 'test/vec.h') diff --git a/test/vec.h b/test/vec.h deleted file mode 100644 index 810e663..0000000 --- a/test/vec.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef VEC_H -#define VEC_H - -#include -#include -#include - -typedef any {}; - -typedef vec[any type]() { - struct <> { - size_t n; - size_t s; - type *buf; - }; - - static inline struct <> <>create() - { - return (struct <>){ - .n = 0, - .s = 0, - .buf = NULL - }; - } - - static inline void <>append(struct <> *v, type n) - { - v->n++; - if (v->n > v->s) { - v->s = v->s == 0 ? 1 : 2 * v->s; - v->buf = realloc(v->buf, v->s * sizeof(type)); - } - - v->buf[v->n - 1] = n; - } - - static inline type *<>at(struct <> *v, size_t i) - { - assert(i < v->n); - return &v->buf[i]; - } - - static inline void <>destroy(struct <> *v) - { - free(v->buf); - } -} - -#endif /* VEC_H */ -- cgit v1.2.3