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