diff options
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); |