This library is basically a compilation of solutions from a variety of sources.
Because these solutions are spread across the intertubes and mutate or offer variants in time, it is fairly hard to track originators to credit them; instead, this page credits what sources was each solution adapted from.Here follows a partial list of credits.
To be completed.
- Compiler identification code - adapted from solutions offered by the Pre-Defined Compiler Macros Wiki.
- Default compiler
#include
paths - extracted from experimentation, assumed to be usable. - Null pointer literal - official backport recommendation by the C++ Standard Committee. Used implementation exposed here: Backporting nullptr (StackOverflow).
static_assert
- adapted from sources also used by Boost.Static Assert.- Iterator helper functions - written by hand supported on signatures from cppreference.com .
addressof
- implemented following cppreference.com .- Fundamental type traits - combined various sources, mostly cppreference.com and the cplusplus chart.
- Portable
stdint.h
original header by Paul Hsieh recommended in this tutorial, wrapped with some assistance from Predef Wiki (see above). - Metaprograming helpers - various sources across the internet but literal implementation adapted from Wikipedia .
unique_ptr
- adapted from code by Howard Hinnant's 2009 implementation, with Boost dependencies removed.- Value-Initialized helper taken and adapted from Boost.
- "explicit_cast" helper taken from Imperfect C++: Solutions for the Real World and adapted to work in both C++03 and C++11.
- Container initialization helper (i12n) - written by hand, from the basic "initialization by iterator range" idiom.
- "auto" Semantics Emulation - written by hand supported on code from the Pre-Defined Compiler Macros Wiki.
- Local functor emulation - written by hand following client code samples from Boost.LocalFunction.
- std::dynarray - written by hand following reference synopsis in Cppreference.
- Transparent Functors (less, etc) - written by hand following reference synopsis in Cppreference.