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

Last Updates Aug 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 <functional> functors (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).
  • 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)
  • n3911 - make_void, void_t. (emulation) (cppreference)
  • n4391 - make_array.

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.
  • n4380: as_const.
  • Nonmember cbegin, cend complements to begin/end.
  • n3500 New assert variants.
  • n3802 (pdf), n3829: call a function with an unpacked tuple<...> as arguments.

Future

Proposals that might be implemented by cxxomfort in the future:

  • ????