>>109912869
>>109913167
oh no, literal paragraphs of horrible, brittle macro hacks! generic containers in C are so impossible!!
generic containers in C in reality:
#define Type_Check(ResultPtr, ComparisonPtr) ((1) ? (ResultPtr) : (ComparisonPtr))
#define dynamic_array(T) \
struct { \
T* Base; \
size_t Count; \
size_t Capacity; \
}
typedef dynamic_array(byte) generic_dynamic_array;
void* Dynamic_Array_Append(generic_dynamic_array* Array, void* Element, size_t ElementSize) {
// ...
}
#define Dynamic_Array_Append(Array, Element) Dynamic_Array_Append((generic_dynamic_array*) (Array), Type_Check((Element), (Array)->Base), sizeof (*Element))
typedef struct {
int Bar;
} foo;
int main(void) {
dynamic_array(foo) FooArray = {0};
Dynamic_Array_Append(&FooArray, &(foo){.Bar = 123});
return (0);
}
wow sooo hard