From 94b767679fc68c51aa0c80bdada35b9978989199 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 18 Jul 2025 21:33:50 +0300 Subject: add supertemplate handling --- example_vec/new/main.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'example_vec') 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); -- cgit v1.2.3