This page lists the features in the C++ Standard that are backported or emulated by the cxxomfort library, as well as the submitted Proposals (nxxxx
, 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 CXXOMFORT_IMPLEMENTS_
:
# 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 .
C++11 features
- 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 :
decltype
. - https://wg21.link/n1990 : Proposed wording for minmax (Backport).
- https://wg21.link/n2069 :
std::decay
(Emulation). - https://wg21.link/n2240 :
enable_if
andconditional
(Backport) - https://wg21.link/n2243, https://wg21.link/n2930 "Range-Based
for
Loop wording" (Emulation) (See Features/Foreach). - https://wg21.link/n2333, https://wg21.link/n2437 : explicit conversion operators (Emulation) (See
explicit_cast
). - https://wg21.link/n2543 : Singly-linked list
forward_list
(Backport). - https://wg21.link/n2569 : from
<algorithm>
: any, all, none algorithms; lexicographical compare 3-way. - https://wg21.link/n2984 (issue 1055) :
underlying_type
(Emulation). - Nonmember iterator helpers
begin
andend
(Backport). unique_ptr
(Backport) (Adapted from Howard Hinnart's implementation).- Allocator traits (Emulation).
- New
auto
semantics (Emulation). - Local classes as arguments to templated function calls. (Emulation) (See Extras).
- Brace-list initialization syntax for containers. (Emulation) (See Features/SequencesInitialization).
- ...among others.
C++14 features
- https://wg21.link/n3421 : Heterogeneous / Type-transparent functors for
<functional>
(Backport) (cppreference example documentation forstd::plus<void>
). - 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 :
make_unique
forunique_ptr
. - https://wg21.link/n3658 : Compile-time integer sequences:
integer_sequence
(Backport) (for C++11 only). - https://wg21.link/n3668 :
exchange
(Backport). - https://wg21.link/n3671 - improved algorithm overloads for equal, mismatch.
C++17 features
- https://wg21.link/n3829 :
apply
- call a function with arguments from a tuple (Emulation). - https://wg21.link/n3911 - Transformation trait
make_void
,void_t
. (Emulation) (cppreference) - https://wg21.link/n4017, n4155 : Nonmember
size
. - https://wg21.link/n4334 : Wording for
bool_constant
(Backport). - https://wg21.link/n4380 :
as_const
(Backport). - https://wg21.link/p0040r1, p0040r2 : Extensions to memory management:
destroy_at
and allies (Backport). - https://wg21.link/p0298r2, https://wg21.link/p0298r3 :
std::byte
, independent type representation for C++'s byte (Backport) (See Features/std::byte) make_from_tuple
(Backport).
C++20 features
- https://wg21.link/p00463 :
std::endian
(Backport).
C++ Proposals
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
dynarray
. - https://wg21.link/n3334 :
array_ref<T>
- https://wg21.link/n3500 : New
assert
variants. - n3824, n4031:
make_array
. - https://wg21.link/n3840 : The world's dumbest smart pointer:
observer_ptr
(in std::experimental as of 2018) (Backport) - n4391 :
make_array
(Emulation). - https://wg21.link/p0117r0 : Variadic
to_string
(See IndependentFeatures, <string>). - ???? Nonmember
cbegin
,cend
complements tobegin/end
.
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.
- Check the Listing of Features.
- Back to the beginning.