#ifndef _VECTOR_H #define _VECTOR_H #include #define VEC_DEFAULT_CAP 16 typedef void* vec_elem_t; typedef struct vec vec_t; struct vec { size_t scap; size_t cap; size_t len; vec_elem_t buffer[]; }; #define vec_new() vec_alloc(VEC_DEFAULT_CAP) #define vec_free(vec) free(vec) #define vec_tnptr(ty, elem) ((ty *)(elem)) vec_t* _rc_restrict vec_alloc(size_t cap) _rc_alloc_fn; #endif /* _VECTOR_H */