List of C++ Standard features backported or emulated by the cxxomfort library.

Last Updated Dec 2017.

  • 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.

C++11 features

(to be completed)

  • n1488, n1601 Null pointer constant. (Standard's recommended Backport) (See Features)
  • n1604, n1720 static_assert (Emulation) (See Features).
  • n1978, n2343: decltype.
  • n2240: enable_if and conditional.
  • n2243, n2930 "Range-Based for Loop wording" (Emulation) (See Features/Foreach).
  • n2333, n2437: explicit conversion operators (Emulation) (Seeexplicit_cast).
  • n2569: from <algorithm>: any, all, none algorithms; lexicographical compare 3-way.
  • Nonmember iterator helpers begin and end.
  • unique_ptr (Adapted from Howard Hinnart's implementation).
  • Allocator traits (Emulation).
  • Singly-linked list forward_list.
  • 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

  • n3421: Type-transparent functors for <functional> (Backport) (cppreference example documentation for std::plus<void>).
  • n3584, n3670: get<type>(tuple<...>) to get tuple elements by type (Backport) (cppreference for std::get - see cases #5-#8) (Features/tuple_get<type>).
  • n3588: make_unique for unique_ptr.
  • n3658: integer_sequence (Backport).
  • n3668: exchange (Backport).
  • n3671 - improved algorithm overloads for equal, mismatch.

C++17 features

  • n3840, n4282 - observer_ptr, "the world's dumbest smart pointer" (cppreference) (Backport).
  • n3911 - make_void, void_t. (Emulation) (cppreference)
  • n4380: as_const.
  • n4391 - make_array (Emulation).
  • std::byte, independent type representation for C++'s byte (Backport) (See Features/std::byte)
  • apply for tuples (Emulation).
  • make_from_tuple (Backport).

C++ Proposals

Proposals for C++11 / C++14 that are not yet made into the Standard but are offered by cxxomfort (See Features/Extras):

  • n1878, n3527: Nullable object wrapper optional<T>.
  • n2648: Dynamically allocated array dynarray.
  • n3334: array_ref<T>
  • n335: range<T> proposal.
  • n3824, n4031: make_array.
  • n4017, n4155: Nonmember size.
  • Nonmember cbegin, cend complements to begin/end.
  • n3500 New assert variants.
  • n3802 (pdf), n3829: call a function with an unpacked tuple<...> as arguments.
  • p0117r0: Variadic to_string (See IndependentFeatures, <string>).

Future

Proposals that might be implemented by cxxomfort in the future:

  • ????