Gena
Gena copied to clipboard
Generic pseudo-templated containers for C. Written entirely in C89 with design inspired by the C++ STL. /// DOCS ARE SLIGHTLY OUTDATED, PROJECT IS STABLE AND STILL BEING DEVELOPED
https://en.cppreference.com/w/c/language/identifier https://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html https://stackoverflow.com/questions/224397/why-do-people-use-double-underscore-so-much-in-c https://stackoverflow.com/questions/10687053/meaning-of-double-underscore-in-the-beginning https://stackoverflow.com/questions/62734225/how-to-get-gcc-clang-to-error-on-reserved-identifiers https://devblogs.microsoft.com/oldnewthing/20230109-00/?p=107685
I still don't like e.g. `GENA_USE_SAMPLE`, `GENA_USE_ENTITY` and so on, as they're not intuitive. The new approach to defining a terminology should be next: - avoid homonyms; - prepare an...
1. Separate binary tree structure from AVL tree implementation, leaving support for tree-specific data ("balance factor" for AVL, "color" for red-black, etc). 2. Add other tree implementations: red-black, AA (_made...
I'm new to C, tried to integrate this for a weekend hackathon project, couldn't get it integrated dependency of the project. Any chance you'd consider writing a Makefile/pkg-config for Gena?
As a C noob, I'm having a real hard time understanding how to use the other types from looking at the macros.
Notes: - Add "count of dimensions" field into header. - Use *stdarg.h* to read arguments for such functions. - Each next dimension has the number of dimensions less by 1...
~~This is very related to #1 and maybe even supersedes it.~~ Also see #4. For now there's no possibility, for example, to create a vector of maps and then deepcopy...
Notes: * Preserve ability to use as plain sources too. * Add ability to run tests, get rid of hardcoded CodeBlocks project. * Modular library compilation (i.e. user should be...
The main disadvantage of vector implementation with C-like access (that is, `vec[i]` instead of smth like `vec_value( vec, i )` or `vec->data[i]`) is that we have to modify all the...
This will help implement complex types such as vector of dynamic strings or multidimensional vectors with dynamic dimensions. 1. Custom grow functions (or maybe macros instead, more effecient?). 2. In-place...