diff options
author | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-07-18 21:33:50 +0300 |
---|---|---|
committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-07-18 21:33:50 +0300 |
commit | 94b767679fc68c51aa0c80bdada35b9978989199 (patch) | |
tree | 711af40c89140a9add7db30cf6a81861a3df1013 /example_vec/new/main.c | |
parent | 1564f79cfc7d790e15298d28f52b4c5c216ce9e5 (diff) | |
download | ngc-94b767679fc68c51aa0c80bdada35b9978989199.tar.gz ngc-94b767679fc68c51aa0c80bdada35b9978989199.zip |
add supertemplate handling
Diffstat (limited to 'example_vec/new/main.c')
-rw-r--r-- | example_vec/new/main.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/example_vec/new/main.c b/example_vec/new/main.c index a00c35c..009911e 100644 --- a/example_vec/new/main.c +++ b/example_vec/new/main.c @@ -1,10 +1,21 @@ #include "vec.h" -typedef ints = vec[int](); - #define foreach(name, i, s) \ for (name##_iter i = name##_begin(s); !name##_end(s, i); i = name##_next(i)) +typedef summable_vec[summable type]() = vec[type](){ + type <>_sum(struct <> *v) { + type sum = 0; + for (size_t i = 0; i < v->n; ++i) { + sum += v->buf[i]; + } + + return sum; + } +}; + +typedef ints = summable_vec[int](); + int main() { struct ints ints = ints_create(0); |