Besides the normal features that are activated automatically upon inclusion of the library, as well as the Supplements, there are a number of side-projects that don't count as part of cxxomfort's distribution proper. They are being developed separately and rather than integrate with cxxomfort tightly they just depend on the library as a whole.
The idea is to pick a number of features, proposals or general C++ concepts and implement them separately. There are a number of reasons to tackle these features separately:
- the syntax to implement them is too different to C++'s normal syntax (heavy macros, etc) or is too heavy.
- the feature is more advanced or convoluted and benefits from being decoupled from most cxxomfort internals.
- the feature is heavily compiler-dependent.
- the feature is not standardized yet and/or present only as a proposal.
In order to use these features, they can be cloned or downloaded from their specific repositories.
Last update of this listing: November 2018
List of Extras
- cxxo-literal_affixes - An emulation of C++11's suffix user-defined literals, that also work as normal function objects.
- cxxo-vocabulary17 - Implementation of the three "vocabulary types" added in C++17: std::optional, std::variant and std::any.
- cxxo-minrange - A minimalistic std::range proposal built around n3350 "A minimal std::range".
- cxxo-static_storage - A storage for types that makes them act as "literal" types like ints: objects are never destructed during the program's lifetime, and references/handles to them are passed around as "fly-weights" instead.
- cxxo-udl - An implementation of suffix user-defined literals, simpler than the one above.
- cxxo-tuple_io - Stream output operators for std::tuple .