This library follows the C++ philosophy of "you do not pay for what you do not use". To that end, the following are design principles the library uses:
- Allocation failure is terminal: Most C++ programs are not designed to handle Out-Of-Memory (OOM) issues, yet this is a major reason the C++ standard library is not
noexcept
a majority of the time. - Simplicity over customization: The standard library has many "customization points" which few programs use, but increase the inherent complexity of implementation.
- A testing ground for C++ standards proposals
- A Swiss Army knife for every conceivable C++ program
These are the external dependencies bundled in this repository:
- boost-ext/ut as a single header for testing
- clang-format cmake integration
This is a possible future dependency:
- fmtlib as three header files to handle printing
This repository uses Test-Driven Development (TDD) with a general rule that each test should do one feature. There is a preference for simpler code and APIs. Any complexity in the code must be justified by the tests.