Artifact 20572d0eb465e0720c778e7093523c8719dbcb47:

Wiki page [Implementation Status] by luismachuca 2017-08-07 19:47:52.
D 2017-08-07T19:47:52.373
L Implementation\sStatus
P a57b9beb7a6c1df3c391a4a87369244b098fbfcd
U luismachuca
W 3704
List of C++ Standard features backported or emulated by the cxxomfort library.

<em>Last Updates Aug 2017</em>.

<h2>C++11 features</h2>

(to be completed)

  *  n1488, [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1601.pdf|n1601] Null pointer constant. (See [Features])
  *  [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1604.html|n1604], [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html|n1720] <code>static_assert</code>. (See [Features])
  *  n1978, n2343: <code>decltype</code>.
  *  n2240: <code>enable_if</code> and <code>conditional</code>.
  *  n2243, [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2930.html|n2930] "Range-Based <code>for</code> Loop wording". (See [Features/Foreach]).
  *  n2333, n2437: explicit conversion operators (emulation via <code>[Features/explicit_cast|explicit_cast]</code>).
  *  n2569: from <code><algorithm></code>: any, all, none algorithms; lexicographical compare 3-way.
  *  Nonmember iterator helpers <code>begin</code> and <code>end</code>.
  *  <code>unique_ptr</code>.
  *  Allocator traits.
  *  Singly-linked list <code>forward_list</code>.
  *  New <code>auto</code> semantics (emulation).
  *  Local classes as arguments to templated function calls. (emulation) (See [Features/Extras#cxxo-localfn|Extras]).
  *  Brace-list initialization syntax for containers. (emulation) (See [Features/SequencesInitialization]).
  *  ...among others.

<h2>C++14 features</h2>

  *  [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3421.htm|n3421]: Type-transparent <code><functional></code> functors.
  *  [http://isocpp.org/files/papers/n3584.html|n3584], n3670: <code>get<type>(tuple<...>)</code> to get tuple elements by type.
  *  n3588: <code>make_unique</code> for <code>unique_ptr</code>.
  *  n3658: <code>integer_sequence</code>.
  *  n3668: <code>exchange</code>.
  *  n3671 - improved algorithm overloads for equal, mismatch.


<h2>C++17 features</h2>

  *  n3840, n4282 - <code>observer_ptr</code>, the world's dumbest smart pointer. ([http://en.cppreference.com/w/cpp/experimental/observer_ptr|cppreference])
  *  n3911 - <code>make_void</code>, <code>void_t</code>. (emulation) ([http://en.cppreference.com/w/cpp/types/void_t|cppreference])
  *  n4391 - <code>make_array</code>.


<h2>C++ Proposals</h2>

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

  *  n1878, [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3527.html|n3527]: Nullable object wrapper <code>[Features/Extras/optional|optional]<T></code>.
  *  n2648: Dynamically allocated array <code>[Features/Extras/dynarray|dynarray]</code>.
  *  [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3334.html|n3334]: <code>[Features/Extras#cxxo-array_ref|array_ref]<T></code>
  *  n335: <code>range<T></code> proposal.
  *  n3824, n4031: <code>make_array</code>.
  *  n4017, n4155: Nonmember <code>size</code>.
  *  n4380: <code>as_const</code>.
  *  Nonmember <code>cbegin</code>, <code>cend</code> complements to <code>begin/end</code>.
  *  [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3500.htm|n3500] New <code>assert</code> variants.
  *  n3802 ([http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3802.pdf|pdf]), [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3829.pdf|n3829]: call a function with an unpacked <code>tuple<...></code> as arguments.


<h2>Future</h2>

Proposals that might be implemented by cxxomfort in the future:

  *  ????


<hr/>

  *  Check the [Features|Listing of Features].
  *  Back to [Cxxomfort|the beginning].

Z d915bf69f0c128186c0b3d56b25d0c4a