The post Christmas release
New release includes:
- Add m-tree header (generic tree API)
- Support of Emplace functionnality to generate functions to push a new element in the container based on the provided types and constructors (Through new operator EMPLACE_TYPE)
- Support of M_INIT_WITH_THROUGH_EMPLACE_TYPE as INIT_WITH method to use the provided constructors of EMPLACE_TYPE to init an object in C11.
- Add M prefix for all exported methods. Previous names still work but will be deprecated on the next release (controlled through M_USE_SMALL_NAME). The plan is for next release to have the names deprecated but still enabled, next next release to have the old names disabled (but can be enabled). Afterwards the old names will be removed for final version.
- Rename M_DEFAULT_OPLIST in M_BASIC_OPLIST (cleaner name)
- Add generic API transformation in the framework responsible of expanding the call to a method from an operator.
- Add more core macros: M_CROSS_MAP2, M_CROSS_MAP, M_AND3 & M_OR3 macros
- Move m_once_t to the public interface
- Remove constraint of calling string_end_p before string_next or string_get_cref
- Add string_previous, string_it_get_pos, string_it_pos, string_set_si & string_set_ui
- Add bitset_ctz, m_core_ctz32, m_core_ctz64
- Move internal types/functions to internal namespace
- Add more internal macros (M_C5_EMPTY, M_C3_EMPTY, M_KEYWORD_TO_VA_ARGS)
- Fix warnings in release mode
- Add more tests
- Add support for Fuzzer testing
- More check against C++ STL
- Fix bugs
- Fix/Update documentation
- Remove deprecated features