This page lists the features in the C++ Standard that are backported or emulated by the cxxomfort library, as well as the submitted Proposals (
pxxxry) that "didn't make it" but are still brought to the library as supplementals.
Last Updated Nov 2018.
- Each feature is identified by its common description (eg.: "
get<type>for tuples") or by the proposal document that was used to source the implementation in the form of "nxxxx" (if possible with a link to the document in question).
- The implementation status of some features are indicated in parenthesis - "Backport" or "Emulation".
- Some of the elements are also linked to external implementation or documentation pages such as the ones in the cppreference wiki.
In the cxxomfort code, the files implementing such features are identified by a list of all the features as well as the implementation status can be found by using the following command to find all macros of the form
# First version: lists only nxxxx and pxxxxry codes: egrep -hEro 'CXXOMFORT_IMPLEMENTS_[nlp][0-9][a-z0-9_]+' | sort | uniq # Second version: lists the codes, and the names describing the features: egrep -hEro 'CXXOMFORT_IMPLEMENTS_[a-z0-9_]+' | sort | uniq
(yes, the "hero" is intentional)
For comparison, the listing of all proposals ever is found at https://wg21.link/index.txt .
- https://wg21.link/n1488 , https://wg21.link/n1601 : A name for the Null pointer constant. (Standard's recommended Backport) (See Features)
- https://wg21.link/n1377, https://wg21.link/n2118 : Rvalue Reference proposal (Emulation).
- https://wg21.link/n1381, https://wg21.link/n1604, https://wg21.link/n1720 :
static_assert(Emulation) (See Features).
- https://wg21.link/n1978, https://wg21.link/n2343 :
- https://wg21.link/n1990 : Proposed wording for minmax (Backport).
- https://wg21.link/n2069 :
- https://wg21.link/n2240 :
- https://wg21.link/n2243, https://wg21.link/n2930 "Range-Based
forLoop wording" (Emulation) (See Features/Foreach).
- https://wg21.link/n2333, https://wg21.link/n2437 : explicit conversion operators (Emulation) (See
- https://wg21.link/n2543 : Singly-linked list
- https://wg21.link/n2569 : from
<algorithm>: any, all, none algorithms; lexicographical compare 3-way.
- https://wg21.link/n2984 (issue 1055) :
- Nonmember iterator helpers
unique_ptr(Backport) (Adapted from Howard Hinnart's implementation).
- Allocator traits (Emulation).
- Local classes as arguments to templated function calls. (Emulation) (See Extras).
- Brace-list initialization syntax for containers. (Emulation) (See Features/SequencesInitialization).
- ...among others.
- https://wg21.link/n3421 : Heterogeneous / Type-transparent functors for
<functional>(Backport) (cppreference example documentation for
- https://wg21.link/n3584, n3670 :
get<type>(tuple<...>)to get tuple elements by type (Backport) (cppreference for std::get - see cases #5-#8) (Features/tuple_get<type>).
- https://wg21.link/n3588 :
- https://wg21.link/n3658 : Compile-time integer sequences:
integer_sequence(Backport) (for C++11 only).
- https://wg21.link/n3668 :
- https://wg21.link/n3671 - improved algorithm overloads for equal, mismatch.
- https://wg21.link/n3829 :
apply- call a function with arguments from a tuple (Emulation).
- https://wg21.link/n3911 - Transformation trait
void_t. (Emulation) (cppreference)
- https://wg21.link/n4017, n4155 : Nonmember
- https://wg21.link/n4334 : Wording for
- https://wg21.link/n4380 :
- https://wg21.link/p0040r1, p0040r2 : Extensions to memory management:
destroy_atand allies (Backport).
- https://wg21.link/p0298r2, https://wg21.link/p0298r3 :
std::byte, independent type representation for C++'s byte (Backport) (See Features/std::byte)
- https://wg21.link/p00463 :
Proposals for C++11 / C++14 that are not yet made into the Standard but are offered by cxxomfort (See also Features/Extras):
- https://wg21.link/n2648 : Dynamically allocated array
- https://wg21.link/n3334 :
- https://wg21.link/n3500 : New
- n3824, n4031:
- https://wg21.link/n3840 : The world's dumbest smart pointer:
observer_ptr(in std::experimental as of 2018) (Backport)
- n4391 :
- https://wg21.link/p0117r0 : Variadic
to_string(See IndependentFeatures, <string>).
- ???? Nonmember
Left for associate libraries to handle
- ???? : Nullable object type:
optional<T>. See cxxo::optional.
- ???? : Variant object type:
variant<...>. See cxxo::variant.
- ????: User-defined literals. See cxxo::literal_affixes (https://notabug.org/lmachucabezzaza/cxxo-literal_affixes).
- n3335 :
range<T>proposal. See cxxo::minrange.