2015-05-01 13:02:24 +02:00
<section xmlns= "http://docbook.org/ns/docbook" version= "5.0"
xml:id="status.iso.201z" xreflabel="Status C++ 201z">
<?dbhtml filename="status_iso_cxx201z.html"?>
<info > <title > C++ 201z</title>
<keywordset >
<keyword > ISO C++</keyword>
<keyword > 201z</keyword>
</keywordset>
</info>
<para >
In this implementation the <literal > -std=gnu++1z</literal> or
<literal > -std=c++1z</literal> flag must be used to enable language
and library
features. See <link linkend= "manual.intro.using.flags" > dialect</link>
options. The pre-defined symbol
<constant > __cplusplus</constant> is used to check for the
presence of the required flag.
</para>
<para >
2016-08-04 15:33:02 +02:00
This section describes the C++1z and library TS support in mainline GCC SVN,
2015-05-01 13:02:24 +02:00
not in any particular release.
</para>
2016-08-04 15:33:02 +02:00
<para >
The following table lists new library features that have been accepted into
the C++1z working draft. The "Proposal" column provides a link to the
ISO C++ committee proposal that describes the feature, while the "Status"
column indicates the first version of GCC that contains an implementation of
this feature (if it has been implemented).
The "SD-6 Feature Test" column shows the corresponding macro or header from
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations" > SD-6:
Feature-testing recommendations for C++</link> .
</para>
2015-05-01 13:02:24 +02:00
<table frame= "all" xml:id= "table.cxx1z_status" >
<title > C++ 201z Implementation Status</title>
<tgroup cols= "4" align= "left" colsep= "0" rowsep= "1" >
<colspec colname= "c1" />
<colspec colname= "c2" />
<colspec colname= "c3" />
<colspec colname= "c4" />
<thead >
<row >
2016-08-04 15:33:02 +02:00
<entry > Library Feature</entry>
<entry > Proposal</entry>
2015-05-01 13:02:24 +02:00
<entry > Status</entry>
2016-08-04 15:33:02 +02:00
<entry > SD-6 Feature Test</entry>
2015-05-01 13:02:24 +02:00
</row>
</thead>
<tbody >
<row >
2016-08-04 15:33:02 +02:00
<?dbhtml bgcolor="#C8B0B0" ?>
<entry >
<code > constexpr std::hardware_{constructive,destructive}_interference_size</code>
</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0154r1.html" >
P0154R1
</link>
</entry>
<entry align= "center" > No </entry>
<entry > <code > __cpp_lib_hardware_interference_size >= 201603</code> </entry>
</row>
<row >
<entry > Core Issue 1776: Replacement of class objects containing reference members</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0137r1.html" >
P0137R1
</link>
</entry>
2016-10-28 16:09:33 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_launder >= 201606</code> </entry>
</row>
<row >
<entry > Wording for <code > std::uncaught_exceptions</code> </entry>
2015-05-01 13:02:24 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf" >
N4259
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 6.1</entry>
<entry > <code > __cpp_lib_uncaught_exceptions >= 201411</code> </entry>
2015-05-01 13:02:24 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Variant: a type-safe union for C++17 </entry>
2015-05-01 13:02:24 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html" >
P0088R3
</link>
</entry>
2016-08-19 10:16:13 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __has_include(< variant> )</code> </entry>
</row>
<row >
<entry > Library Fundamentals V1 TS Components: <code > optional</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 7 </entry>
<entry > <code > __has_include(< optional> )</code> </entry>
</row>
<row >
<entry > Library Fundamentals V1 TS Components: <code > any</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __has_include(< any> )</code> </entry>
</row>
<row >
<entry > Library Fundamentals V1 TS Components: <code > string_view</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __has_include(< string_view> )</code> </entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Library Fundamentals V1 TS Components: <code > memory_resource</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
<entry align= "center" > No </entry>
<entry > <code > __has_include(< memory_resource> )</code> </entry>
</row>
2016-08-06 02:06:02 +02:00
<row >
<entry > Library Fundamentals V1 TS Components: <code > apply</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_apply >= 201603</code> </entry>
</row>
<row >
<entry > Library Fundamentals V1 TS Components: <code > shared_ptr< T[]> </code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
2016-11-13 23:57:45 +01:00
<entry align= "center" > 7 </entry>
2016-08-06 02:06:02 +02:00
<entry > <code > __cpp_lib_shared_ptr_arrays >= 201603</code> </entry>
</row>
<row >
<entry > Library Fundamentals V1 TS Components: Searchers </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
2016-09-27 17:39:51 +02:00
<entry align= "center" > 7 </entry>
2016-08-06 02:06:02 +02:00
<entry > <code > __cpp_lib_boyer_moore_searcher >= 201603</code> </entry>
</row>
2016-10-12 17:26:48 +02:00
<row >
<entry > Library Fundamentals V1 TS Components: Sampling </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0220r1.html" >
P0220R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_sample >= 201603</code> </entry>
</row>
2016-08-04 15:33:02 +02:00
<row >
<entry > Constant View: A proposal for a <code > std::as_const</code> helper function template </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "" >
P0007R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_as_const >= 201510 </code> </entry>
</row>
<row >
<entry > Improving pair and tuple </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4387" >
N4387
</link>
</entry>
<entry align= "center" > 6.1 </entry>
<entry > N/A </entry>
</row>
<row >
2016-08-19 10:16:13 +02:00
<entry > <code > make_from_tuple</code> : apply for construction </entry>
2016-08-04 15:33:02 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0209r2.pdf" >
P0209R2
</link>
</entry>
2016-08-19 10:16:13 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_make_from_tuple >= 201606 </code> </entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
2015-05-01 13:02:24 +02:00
<entry >
Removing <code > auto_ptr</code> , <code > random_shuffle()</code> ,
And Old <code > < functional> </code> Stuff
</entry>
2016-08-04 15:33:02 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm" >
N4190
</link>
</entry>
<entry align= "center" > No (kept for backwards compatibility)</entry>
2015-05-01 13:02:24 +02:00
<entry />
</row>
<row >
2016-08-04 15:33:02 +02:00
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Deprecating Vestigial Library Parts in C++17 </entry>
2015-05-01 13:02:24 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html" >
P0174R2
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > No </entry>
<entry />
</row>
<row >
<entry > Making <code > std::owner_less</code> more flexible </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0074r0.html" >
P0074R0
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_transparent_operators >= 201510 </code> </entry>
</row>
<row >
<entry > <code > std::addressof</code> should be constexpr </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0304r0.html#2296" >
LWG2296
</link>
</entry>
2016-10-10 17:34:28 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_addressof_constexpr >= 201603 </code> </entry>
2015-05-01 13:02:24 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Safe conversions in <code > unique_ptr< T[]> </code> </entry>
2015-05-01 13:02:24 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4089.pdf" >
2016-08-04 15:33:02 +02:00
N4089
</link>
</entry>
2016-10-28 16:09:33 +02:00
<entry align= "center" > 6 </entry>
2016-08-04 15:33:02 +02:00
<entry />
</row>
<row >
<entry > LWG 2228: Missing SFINAE rule in unique_ptr templated assignment </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4366.html" >
N4366
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-10-28 16:09:33 +02:00
<entry align= "center" > 6 </entry>
2015-05-01 13:02:24 +02:00
<entry />
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Re-enabling <code > shared_from_this</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0033r1.html" >
P0033R1
</link>
</entry>
2016-08-05 15:57:30 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_enable_shared_from_this >= 201603</code> </entry>
</row>
<row >
<entry > A proposal to add <code > invoke</code> function template </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html" >
N4169
</link>
</entry>
<entry align= "center" > 6.1 </entry>
<entry > <code > __cpp_lib_invoke >= 201411 </code> </entry>
</row>
<row >
<entry > TriviallyCopyable <code > reference_wrapper</code> </entry>
2015-05-01 13:02:24 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4277.html" >
N4277
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 5.1 </entry>
2015-05-01 13:02:24 +02:00
<entry />
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Adopt <code > not_fn</code> from Library Fundamentals 2 for C++17 </entry>
2015-05-01 13:02:24 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0005r4.html" >
P0005R4
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-08-19 17:42:34 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_not_fn >= 201603</code> </entry>
</row>
<row >
<entry > Fixes for <code > not_fn</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0358r1.html" >
P0358R1
</link>
</entry>
2016-09-27 17:39:51 +02:00
<entry align= "center" > 7 </entry>
2015-11-10 15:05:01 +01:00
<entry />
2015-05-01 13:02:24 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Fixing a design mistake in the searchers interface in Library Fundamentals </entry>
2015-05-01 13:02:24 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0253r1.pdf" >
P0253R1
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-09-27 17:39:51 +02:00
<entry align= "center" > 7 </entry>
2015-05-01 13:02:24 +02:00
<entry />
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Extending memory management tools </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0040r3.html" >
P0040R3
</link>
</entry>
2016-09-27 17:39:51 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > </code> </entry>
</row>
<row >
<entry > <code > shared_ptr::weak_type</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0163r0.html" >
P0163R0
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_shared_ptr_weak_type >= 201606</code> </entry>
</row>
<row >
<entry > Transformation Trait Alias <code > void_t</code> </entry>
2015-05-01 13:02:24 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n3911.pdf" >
N3911
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 6.1</entry>
<entry > <code > __cpp_lib_void_t >= 201411</code> </entry>
</row>
<row >
<entry > Wording for <code > bool_constant</code> , revision 1 </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4389.html" >
N4389
</link>
</entry>
<entry align= "center" > 6.1</entry>
<entry > <code > __cpp_lib_bool_constant >= 201505</code> </entry>
</row>
<row >
<entry > Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0006r0.html" >
P0006R0
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_type_trait_variable_templates >= 201510 </code> </entry>
</row>
<row >
<entry > Logical Operator Type Traits</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0013r1.html" >
P0013R1
</link>
</entry>
<entry align= "center" > 6.1 </entry>
<entry > <code > __cpp_lib_logical_traits >= 201510 </code> </entry>
</row>
<row >
<entry > Adding [nothrow-]swappable traits </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0185r1.html" >
P0185R1
</link>
</entry>
<entry align= "center" > 7 (<code > __is_swappable</code> available since 6.1)</entry>
<entry > <code > __cpp_lib_is_swappable >= 201603 </code> </entry>
</row>
<row >
<entry > <code > is_callable</code> , the missing INVOKE related trait</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0077r2.html" >
P0077R2
</link>
</entry>
2016-08-04 20:02:56 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_is_callable >= 201603 </code> </entry>
</row>
<row >
<entry > has_unique_object_representations </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html" >
P0258R2
</link>
</entry>
2016-10-07 20:02:43 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_has_unique_object_representations >= 201606 </code> </entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Ordered by default </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0181r1.html" >
P0181R1
</link>
</entry>
<entry align= "center" > No </entry>
<entry > <code > __cpp_lib_default_order >= 201606</code> </entry>
</row>
<row >
<entry > Polishing <code > < chrono> </code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html" >
P0092R1
</link>
</entry>
2016-08-05 15:52:59 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_chrono >= 201510 </code> </entry>
</row>
<row >
<entry > Integrating <code > std::string_view</code> and <code > std::string</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0254r2.pdf" >
P0254R2
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > </code> </entry>
</row>
<row >
<entry > Give 'std::string' a non-const '.data()' member function </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0272r1.html" >
P0272R1
</link>
</entry>
<entry align= "center" > 7 </entry>
<entry > <code > </code> </entry>
</row>
<row >
<entry > Cleaning-up noexcept in the Library</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4258.pdf" >
N4258
</link>
</entry>
<entry align= "center" > 6.1</entry>
<entry > <code > __cpp_lib_allocator_traits_is_always_equal >= 201411 </code> </entry>
</row>
<row >
<entry > Contiguous Iterators </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4284.htm" >
N4284
</link>
</entry>
<entry align= "center" > N/A</entry>
2015-05-01 13:02:24 +02:00
<entry />
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Minimal incomplete type support for standard containers </entry>
2015-05-01 13:02:24 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4510.html" >
N4510
</link>
</entry>
2016-08-06 14:45:58 +02:00
<entry align= "center" > 6.2 (3.0)</entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_incomplete_container_elements >= 201505 </code>
2016-08-06 14:45:58 +02:00
(the feature was always supported, but the macro was not defined until GCC 6.2)
2016-08-04 15:33:02 +02:00
</entry>
</row>
<row >
<entry > Emplace return type </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0084r2.pdf" >
P0084R2
2015-05-01 13:02:24 +02:00
</link>
</entry>
2016-10-17 14:00:38 +02:00
<entry align= "center" > 7 </entry>
2015-11-10 15:05:01 +01:00
<entry />
2015-05-01 13:02:24 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Improved insertion interface for unique-key maps</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4279.html" >
N4279
</link>
</entry>
<entry align= "center" > 6.1 </entry>
<entry > <code > __cpp_lib_map_try_emplace >= 201411</code> ,
<code > __cpp_lib_unordered_map_try_emplace >= 201411</code>
</entry>
</row>
<row >
<entry > Splicing Maps and Sets </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0083r3.pdf" >
P0083R3
</link>
</entry>
Implement C++17 node extraction and insertion (P0083R5)
* doc/xml/manual/status_cxx2017.xml: Document status.
* doc/html/*: Regenerate.
* include/Makefile.am: Add bits/node_handle.h and reorder.
* include/Makefile.in: Regenerate.
* include/bits/hashtable.h (_Hashtable::node_type)
(_Hashtable::insert_return_type, _Hashtable::_M_reinsert_node)
(_Hashtable::_M_reinsert_node_multi, _Hashtable::extract)
(_Hashtable::_M_merge_unique, _Hashtable::_M_merge_multi): Define.
(_Hash_merge_helper): Define primary template.
* include/bits/node_handle.h: New header.
* include/bits/stl_map.h (map): Declare _Rb_tree_merge_helper as
friend.
(map::node_type, map::insert_return_type, map::extract, map::merge)
(map::insert(node_type&&), map::insert(const_iterator, node_type&&)):
Define new members.
(_Rb_tree_merge_helper): Specialize for map.
* include/bits/stl_multimap.h (multimap): Declare _Rb_tree_merge_helper
as friend.
(multimap::node_type, multimap::extract, multimap::merge)
(multimap::insert(node_type&&))
(multimap::insert(const_iterator, node_type&&)): Define.
(_Rb_tree_merge_helper): Specialize for multimap.
* include/bits/stl_multiset.h (multiset): Declare _Rb_tree_merge_helper
as friend.
(multiset::node_type, multiset::extract, multiset::merge)
(multiset::insert(node_type&&))
(multiset::insert(const_iterator, node_type&&)): Define.
* include/bits/stl_set.h (set): Declare _Rb_tree_merge_helper as
friend.
(set::node_type, set::insert_return_type, set::extract, set::merge)
(set::insert(node_type&&), set::insert(const_iterator, node_type&&)):
Define.
(_Rb_tree_merge_helper): Specialize for set.
* include/bits/stl_tree.h (_Rb_tree): Declare _Rb_tree<> as friend.
(_Rb_tree::node_type, _Rb_tree::insert_return_type)
(_Rb_tree::_M_reinsert_node_unique, _Rb_tree::_M_reinsert_node_equal)
(_Rb_tree::_M_reinsert_node_hint_unique)
(_Rb_tree::_M_reinsert_node_hint_equal, _Rb_tree::extract)
(_Rb_tree::_M_merge_unique, _Rb_tree::_M_merge_equal): Define.
(_Rb_tree_merge_helper): Specialize for multiset.
* include/bits/unordered_map.h (unordered_map): Declare
unordered_map<> and unordered_multimap<> as friends.
(unordered_map::node_type, unordered_map::insert_return_type)
(unordered_map::extract, unordered_map::merge)
(unordered_map::insert(node_type&&))
(unordered_map::insert(const_iterator, node_type&&))
(unordered_multimap): Declare _Hash_merge_helper as friend.
(unordered_multimap::node_type, unordered_multimap::extract)
(unordered_multimap::merge, unordered_multimap::insert(node_type&&))
(unordered_multimap::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered maps and multimaps.
* include/bits/unordered_set.h (unordered_set, unordered_multiset):
Declare _Hash_merge_helper as friend.
(unordered_set::node_type, unordered_set::insert_return_type)
(unordered_set::extract, unordered_set::merge)
(unordered_set::insert(node_type&&))
(unordered_set::insert(const_iterator, node_type&&)): Define.
(unordered_multiset::node_type, unordered_multiset::extract)
(unordered_multiset::merge, unordered_multiset::insert(node_type&&))
(unordered_multiset::insert(const_iterator, node_type&&)): Define.
(_Hash_merge_helper): Specialize for unordered sets and multisets.
* include/debug/map.h (map): Add using declarations or forwarding
functions for new members.
* include/debug/map.h (multimap): Likewise.
* include/debug/map.h (multiset): Likewise.
* include/debug/map.h (set): Likewise.
* include/debug/unordered_map (unordered_map, unordered_multimap):
Likewise.
* include/debug/unordered_set( unordered_set, unordered_multiset):
Likewise.
* python/libstdcxx/v6/printers.py (get_value_from_aligned_membuf): New
helper function.
(get_value_from_list_node, get_value_from_Rb_tree_node): Use helper.
(StdNodeHandlePrinter): Define printer for node handles.
(build_libstdcxx_dictionary): Register StdNodeHandlePrinter.
* testsuite/23_containers/map/modifiers/extract.cc: New.
* testsuite/23_containers/map/modifiers/merge.cc: New.
* testsuite/23_containers/multimap/modifiers/extract.cc: New.
* testsuite/23_containers/multimap/modifiers/merge.cc: New.
* testsuite/23_containers/multiset/modifiers/extract.cc: New.
* testsuite/23_containers/multiset/modifiers/merge.cc: New.
* testsuite/23_containers/set/modifiers/extract.cc: New.
* testsuite/23_containers/set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_map/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_map/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multimap/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
New.
* testsuite/23_containers/unordered_multiset/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/modifiers/extract.cc: New.
* testsuite/23_containers/unordered_set/modifiers/merge.cc: New.
* testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
dg-error lineno.
* testsuite/libstdc++-prettyprinters/cxx17.cc: Test node handles.
From-SVN: r240363
2016-09-22 15:58:49 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_node_extract >= 201606 </code> </entry>
</row>
<row >
<entry > Non-member <code > size()</code> and more</entry>
2015-05-01 13:02:24 +02:00
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4280.pdf" >
N4280
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 6.1 </entry>
<entry > <code > __cpp_lib_nonmember_container_access >= 201411 </code> </entry>
2015-05-01 13:02:24 +02:00
</row>
2015-06-05 19:17:53 +02:00
<row >
2016-08-04 15:33:02 +02:00
<entry > A Proposal to Add Constexpr Modifiers to <code > reverse_iterator</code> , <code > move_iterator</code> , <code > array</code> and Range Access </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0031r0.html" >
P0031R0
2015-06-05 19:17:53 +02:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_array_constexpr >= 201603 </code> </entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > The Parallelism TS Should be Standardized </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0024r2.html" >
P0024R2
</link>
2015-06-05 19:17:53 +02:00
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > No </entry>
<entry > <code > __has_include(< execution> ) </code> ,
<code > __cpp_lib_parallel_algorithm >= 201603 </code> </entry>
2015-06-05 19:17:53 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > An algorithm to "clamp" a value between a pair of boundary values </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0025r0.html" >
P0025R0
2015-06-05 19:17:53 +02:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 7 </entry>
<entry > <code > __cpp_lib_clamp >= 201603 </code> </entry>
2015-06-05 19:17:53 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Adopt Selected Library Fundamentals V2 Components for C++17 </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0295r0.pdf" >
P0295R0
2015-06-05 19:17:53 +02:00
</link>
</entry>
2016-10-03 19:01:10 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_gcd >= 201606 </code> ,
<code > __cpp_lib_lcm >= 201606 </code>
</entry>
2015-06-05 19:17:53 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Proposal to Introduce a 3-Argument Overload to <code > std::hypot</code> </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0030r1.pdf" >
P0030R1
2015-06-05 19:17:53 +02:00
</link>
</entry>
2016-09-27 17:14:24 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_hypot >= 201603 </code> </entry>
2015-06-05 19:17:53 +02:00
</row>
<row >
2016-08-04 15:33:02 +02:00
<entry > Mathematical Special Functions for C++17 </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0226r1.pdf" >
P0226R1
2015-06-05 19:17:53 +02:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > 7 (6.1) </entry>
<entry > <code > __cpp_lib_math_special_functions >= 201603 </code>
(for GCC 6 or pre-C++17 define
<code > __STDCPP_WANT_MATH_SPEC_FUNCS__</code> to a non-zero value
and test for <code > __STDCPP_MATH_SPEC_FUNCS__ >= 201003L</code> )
</entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Adopt the File System TS for C++17 </entry>
2015-06-05 19:17:53 +02:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0218r1.html" >
P0218R1
</link>
2015-06-05 19:17:53 +02:00
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > No </entry>
<entry > <code > __has_include(< filesystem> ) </code> ,
<code > __cpp_lib_filesystem >= 201603 </code> </entry>
2015-06-05 19:17:53 +02:00
</row>
2015-12-14 12:08:30 +01:00
<row >
2016-08-04 15:33:02 +02:00
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Relative Paths for Filesystem</entry>
2015-12-14 12:08:30 +01:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0219r1.html" >
P0219R1
2015-12-14 12:08:30 +01:00
</link>
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > No </entry>
<entry />
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Adapting string_view by filesystem paths </entry>
2015-12-14 12:08:30 +01:00
<entry >
2016-08-04 15:33:02 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0392r0.pdf" >
P0392R0
</link>
2015-12-14 12:08:30 +01:00
</entry>
2016-08-04 15:33:02 +02:00
<entry align= "center" > No </entry>
2015-12-14 12:08:30 +01:00
<entry />
</row>
2016-08-04 15:33:02 +02:00
<row >
<entry > constexpr <code > atomic< T> ::is_always_lock_free</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0152r1.html" >
P0152R1
</link>
</entry>
2016-08-19 17:42:27 +02:00
<entry align= "center" > 7 </entry>
2016-08-04 15:33:02 +02:00
<entry > <code > __cpp_lib_atomic_is_always_lock_free >= 201603 </code> </entry>
</row>
<row >
<entry > A proposal to add <code > shared_mutex</code> (untimed) (Revision 4)</entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4508.html" >
N4508
</link>
</entry>
<entry align= "center" > 6.1 </entry>
<entry > <code > __cpp_lib_shared_mutex >= 201505 </code> </entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry > Variadic <code > lock_guard</code> </entry>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0156r0.html" >
P0156R0
</link>
</entry>
<entry align= "center" > No </entry>
<entry > <code > __cpp_lib_lock_guard_variadic >= 201510 </code> </entry>
</row>
2015-05-01 13:02:24 +02:00
</tbody>
</tgroup>
</table>
2015-05-29 17:18:05 +02:00
<table frame= "all" xml:id= "table.cxx1z_ts_status" >
2015-05-01 13:02:24 +02:00
<title > C++ Technical Specifications Implementation Status</title>
<tgroup cols= "4" align= "left" colsep= "0" rowsep= "1" >
<colspec colname= "c1" />
<colspec colname= "c2" />
<colspec colname= "c3" />
<colspec colname= "c4" />
<thead >
<row >
<entry > Paper</entry>
<entry > Title</entry>
<entry > Status</entry>
<entry > Comments</entry>
</row>
</thead>
<tbody >
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html" >
N4076
</link>
</entry>
<entry > A generalized callable negator</entry>
<entry > Y</entry>
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4273.htm" >
N4273
</link>
</entry>
<entry > Uniform Container Erasure</entry>
<entry > Y</entry>
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4061.pdf" >
N4061
</link>
</entry>
<entry > Greatest Common Divisor and Least Common Multiple</entry>
2015-05-02 17:18:36 +02:00
<entry > Y</entry>
2015-05-01 13:02:24 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
2015-05-02 19:14:25 +02:00
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4066.htm" >
N4066
2015-05-01 13:02:24 +02:00
</link>
</entry>
<entry > Delimited iterators</entry>
2015-05-02 19:14:25 +02:00
<entry > Y</entry>
2015-05-01 13:02:24 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4282.pdf" >
N4282
</link>
</entry>
<entry > The World's Dumbest Smart Pointer</entry>
2015-05-01 23:01:17 +02:00
<entry > Y</entry>
2015-05-01 13:02:24 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
2015-06-05 19:17:53 +02:00
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4388.html" >
N4388
</link>
</entry>
<entry > Const-Propagating Wrapper</entry>
2015-07-03 16:08:48 +02:00
<entry > Y</entry>
2015-06-05 19:17:53 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4391.html" >
N4391
</link>
</entry>
<entry > <code > make_array</code> , revision 4 </entry>
2015-08-13 16:55:46 +02:00
<entry > Y</entry>
2015-06-05 19:17:53 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4502.pdf" >
N4502
</link>
</entry>
<entry > Support for the C++ Detection Idiom, V2 </entry>
Implement N4502, the C++ Detection Idiom.
* doc/xml/manual/status_cxx2017.xml: Update status table.
* include/experimental/type_traits (void_t, is_detected,
is_detected_v, detected_t, detected_or, detected_or_t,
is_detected_exact, is_detected_exact_v, is_detected_convertible,
is_detected_convertible_v): Define.
* include/std/type_traits (__detector, __detected_or, __detected_or_t,
__detected_or_t_): Define.
* testsuite/experimental/type_traits/detection.cc: New.
From-SVN: r225242
2015-07-01 14:23:54 +02:00
<entry > Y</entry>
2015-06-05 19:17:53 +02:00
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4519.pdf" >
N4519
</link>
</entry>
<entry > Source-Code Information Capture </entry>
<entry > N</entry>
<entry > Library Fundamentals 2 TS</entry>
</row>
<row >
<?dbhtml bgcolor="#C8B0B0" ?>
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4521.html" >
N4521
</link>
</entry>
<entry > Merge Fundamentals V1 into V2 </entry>
<entry > N</entry>
<entry > Library Fundamentals 2 TS</entry>
</row>
2015-12-14 12:08:30 +01:00
<row >
<entry >
<link xmlns:xlink= "http://www.w3.org/1999/xlink" xlink:href= "http://open-std.org/JTC1/SC22/WG21/docs/papers/2015/p0013r1.html" >
P0013R1
</link>
</entry>
<entry > Logical Operator Type Traits (revision 1)</entry>
<entry > Y</entry>
<entry > Library Fundamentals 2 TS</entry>
</row>
2015-06-05 19:17:53 +02:00
2015-05-01 13:02:24 +02:00
</tbody>
</tgroup>
</table>
2016-10-07 20:02:53 +02:00
<section xml:id= "iso.2017.specific" xreflabel= "Implementation Specific" > <info > <title > Implementation Specific Behavior</title> </info>
<para > For behaviour which is also specified by previous standards,
see <link linkend= "iso.1998.specific" > C++ 1998/2003 Implementation
Specific Behavior</link> and <link linkend= "iso.2011.specific" > C++
2011 Implementation Specific Behavior</link> . This section only
documents behaviour which is new in the 2017 standard.
</para>
<para >
<emphasis > 20.6.5 [optional.bad_optional_access]</emphasis>
<code > what()</code> returns <literal > "bad optional access"</literal> .
</para>
<para >
<emphasis > 20.7.2 [variant.variant]</emphasis>
Whether <classname > variant</classname> supports over-aligned types
should be documented here.
</para>
<para >
<emphasis > 20.7.10 [variant.bad.access]</emphasis>
<code > what()</code> returns <literal > "Unexpected index"</literal> .
</para>
<para >
<emphasis > 20.12.5.2 [memory.resource.pool.options]</emphasis>
The limits for maximum number of blocks and largest allocation size
supported by <classname > pool_options</classname> should be documented
here.
</para>
<para >
<emphasis > 20.12.6.1 [memory.resource.monotonic.buffer.ctor]</emphasis>
The default <code > next_buffer_size</code> and growth factor should
be documented here.
</para>
<para >
<emphasis > 20.15.4.3 [meta.unary.prop]</emphasis>
The predicate condition for
<code > has_unique_object_representations</code> is true for all scalar
types except floating point types.
</para>
<para >
<emphasis > 20.19.3 [execpol.type],
25.2.3 [algorithms.parallel.exec]</emphasis>
There are no implementation-defined execution policies.
</para>
<para >
<emphasis > 22.4.2 [string.view.template]</emphasis>
<classname > basic_string_view< C, T> ::iterator</classname> is
<code > C*</code> and
<classname > basic_string_view< C, T> ::const_iterator</classname> is
<code > const C*</code> .
</para>
<para >
<emphasis > 25.2.3 [algorithms.parallel.exec]</emphasis>
Threads of execution created by <classname > std::thread</classname>
provide concurrent forward progress guarantees, so threads of execution
implicitly created by the library will provide parallel forward
progress guarantees.
</para>
<para >
<emphasis > 26.4.1 [cfenv.syn]</emphasis>
The effects of the <filename > < cfenv> </filename> functions
depends on whether the <code > FENV_ACCESS</code> pragma is supported,
and on the C library that provides the header.
</para>
<para >
<emphasis > 26.6.9 [c.math.rand]</emphasis>
Whether the <function > rand</function> function may introduce data
races depends on the target C library that provides the function.
</para>
<para >
<emphasis > 26.9.5 [sf.cmath]</emphasis>
The effect of calling the mathematical special functions with large
inputs should be documented here.
</para>
<para >
<emphasis > 27.10.2.1 [fs.conform.9945]</emphasis>
The behavior of the filesystem library implementation will depend on
the target operating system. Some features will not be not supported
on some targets.
</para>
<para >
<emphasis > 27.10.6 [fs.filesystem.syn]</emphasis>
The clock used for file times is
<classname > std::chrono::system_clock</classname> .
</para>
<para >
<emphasis > 27.10.8 [path.generic]</emphasis>
dot-dot in the root-directory refers to the root-directory itself.
</para>
</section>
2015-05-01 13:02:24 +02:00
</section>