| <section xmlns="http://docbook.org/ns/docbook" version="5.0" |
| xml:id="status.iso.2014" xreflabel="Status C++ 2014"> |
| <?dbhtml filename="status_iso_cxx2014.html"?> |
| |
| <info><title>C++ 2014</title> |
| <keywordset> |
| <keyword>ISO C++</keyword> |
| <keyword>2014</keyword> |
| </keywordset> |
| </info> |
| |
| <para> |
| In this implementation the <literal>-std=gnu++14</literal> or |
| <literal>-std=c++14</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. |
| GCC 6.1 was the first release with non-experimental C++14 support, |
| so the API and ABI of features added in C++14 is only stable |
| since that release. |
| </para> |
| |
| <para> |
| This status table is based on the table of contents of ISO/IEC 14882:2014. |
| Some subclauses are not shown in the table where the content is unchanged |
| since C++11 and the implementation is complete. |
| </para> |
| |
| <para> |
| This section describes the C++14 and library TS support in mainline GCC, |
| not in any particular release. |
| </para> |
| |
| <!-- Status is Yes or No, Broken/Partial--> |
| <!-- |
| Yes |
| |
| No |
| <?dbhtml bgcolor="#C8B0B0" ?> |
| Broken/Partial |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| --> |
| <table frame="all" xml:id="table.cxx14_status"> |
| <title>C++ 2014 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>Section</entry> |
| <entry>Description</entry> |
| <entry>Status</entry> |
| <entry>Comments</entry> |
| </row> |
| </thead> |
| |
| <tbody> |
| |
| <row> |
| <entry> |
| <emphasis>18</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Language support</emphasis> |
| </entry> |
| </row> |
| |
| <row> |
| <entry>18.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.2</entry> |
| <entry>Types</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.3</entry> |
| <entry>Implementation properties</entry> |
| <entry/> |
| <entry/> |
| </row> |
| |
| <row> |
| <entry>18.3.2</entry> |
| <entry>Numeric Limits</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.3.2.3</entry> |
| <entry>Class template <code>numeric_limits</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.3.2.4</entry> |
| <entry><code>numeric_limits</code> members</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#C8B0B0" ?> |
| <entry>18.3.2.5</entry> |
| <entry><code>float_round_style</code></entry> |
| <entry>N</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#C8B0B0" ?> |
| <entry>18.3.2.6</entry> |
| <entry><code>float_denorm_style</code></entry> |
| <entry>N</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.3.2.7</entry> |
| <entry><code>numeric_limits</code> specializations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.3.3</entry> |
| <entry>C Library</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| |
| <row> |
| <entry>18.4</entry> |
| <entry>Integer types</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.4.1</entry> |
| <entry>Header <code><cstdint></code> synopsis</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>18.5</entry> |
| <entry>Start and termination</entry> |
| <entry>Partial</entry> |
| <entry>C library dependency for quick_exit, at_quick_exit</entry> |
| </row> |
| <row> |
| <entry>18.6</entry> |
| <entry>Dynamic memory management</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.7</entry> |
| <entry>Type identification</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.7.1</entry> |
| <entry>Class type_info</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.7.2</entry> |
| <entry>Class bad_cast</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.7.3</entry> |
| <entry>Class bad_typeid</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8</entry> |
| <entry>Exception handling</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.1</entry> |
| <entry>Class exception</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.2</entry> |
| <entry>Class bad_exception</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.3</entry> |
| <entry>Abnormal termination</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.4</entry> |
| <entry><code>uncaught_exception</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.5</entry> |
| <entry>Exception Propagation</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.8.6</entry> |
| <entry><code>nested_exception</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.9</entry> |
| <entry>Initializer lists</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.9.1</entry> |
| <entry>Initializer list constructors</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.9.2</entry> |
| <entry>Initializer list access</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.9.3</entry> |
| <entry>Initializer list range access</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>18.10</entry> |
| <entry>Other runtime support</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>19</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Diagnostics</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>19.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.2</entry> |
| <entry>Exception classes</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.3</entry> |
| <entry>Assertions</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.4</entry> |
| <entry>Error numbers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5</entry> |
| <entry>System error support</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5.1</entry> |
| <entry>Class <code>error_category</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5.2</entry> |
| <entry>Class <code>error_code</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5.3</entry> |
| <entry>Class <code>error_condition</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5.4</entry> |
| <entry>Comparison operators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>19.5.5</entry> |
| <entry>Class <code>system_error</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>20</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>General utilities</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>20.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2</entry> |
| <entry>Utility components</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2.1</entry> |
| <entry>Operators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2.2</entry> |
| <entry>swap</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2.3</entry> |
| <entry>exchange</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2.4</entry> |
| <entry>forward/move helpers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.2.5</entry> |
| <entry>Function template <code>declval</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.3</entry> |
| <entry>Pairs</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.4</entry> |
| <entry>Tuples</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.5</entry> |
| <entry>Compile-time integer sequences</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.5.2</entry> |
| <entry>Class template <code>integer_sequence</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.5.3</entry> |
| <entry>Alias template <code>make_integer_sequence</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.6</entry> |
| <entry>Class template <code>bitset</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.7</entry> |
| <entry>Memory</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8</entry> |
| <entry>Smart pointers</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1</entry> |
| <entry>Class template <code>unique_ptr</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1.1</entry> |
| <entry>Default deleters</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1.2</entry> |
| <entry><code>unique_ptr</code> for single objects</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1.3</entry> |
| <entry><code>unique_ptr</code> for array objects with a runtime length</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1.4</entry> |
| <entry><code>unique_ptr</code> creation</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.1.5</entry> |
| <entry><code>unique_ptr</code> specialized algorithms</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2</entry> |
| <entry>Shared-ownership pointers</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.1</entry> |
| <entry>Class <code>bad_weak_ptr</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.2</entry> |
| <entry>Class template <code>shared_ptr</code></entry> |
| <entry>Y</entry> |
| <entry> |
| Uses code from |
| <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.boost.org/libs/smart_ptr/shared_ptr.htm">boost::shared_ptr</link>. |
| </entry> |
| </row> |
| <row> |
| <entry>20.8.2.3</entry> |
| <entry>Class template <code>weak_ptr</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.4</entry> |
| <entry>Class template <code>owner_less</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.5</entry> |
| <entry>Class template <code>enable_shared_from_this</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.6</entry> |
| <entry><code>shared_ptr</code> atomic access</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.2.7</entry> |
| <entry>Smart pointer hash support</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9</entry> |
| <entry>Function objects</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.1</entry> |
| <entry>Definitions</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.2</entry> |
| <entry>Requirements</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.3</entry> |
| <entry>Class template <code>reference_wrapper</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.4</entry> |
| <entry>Arithmetic operation</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.5</entry> |
| <entry>Comparisons</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.8.6</entry> |
| <entry>Logical operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.7</entry> |
| <entry>Bitwise operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.8</entry> |
| <entry>Negators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.9</entry> |
| <entry>Function object binders</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.10</entry> |
| <entry>Function template <code>mem_fn</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.11</entry> |
| <entry>Polymorphic function wrappers</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.9.11.1</entry> |
| <entry>Class <code>bad_function_call</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>20.9.11.2</entry> |
| <entry>Class template <code>function</code></entry> |
| <entry>Partial</entry> |
| <entry>Missing allocator support</entry> |
| </row> |
| <row> |
| <entry>20.9.12</entry> |
| <entry>Class template <code>hash</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10</entry> |
| <entry>Metaprogramming and type traits</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.1</entry> |
| <entry>Requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.2</entry> |
| <entry>Header <code><type_traits></code> synopsis</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.3</entry> |
| <entry>Helper classes</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.4</entry> |
| <entry>Unary Type Traits</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.5</entry> |
| <entry>Type property queries</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.6</entry> |
| <entry>Relationships between types</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.10.7</entry> |
| <entry>Transformations between types</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.11</entry> |
| <entry>Compile-time rational arithmetic</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12</entry> |
| <entry>Time utilities</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.3</entry> |
| <entry>Clock requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.4</entry> |
| <entry>Time-related traits</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.5</entry> |
| <entry>Class template <code>duration</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.5.8</entry> |
| <entry>Suffixes for duration literals</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.6</entry> |
| <entry>Class template <code>time_point</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.7</entry> |
| <entry>Clocks</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.12.8</entry> |
| <entry>Date and time functions</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.13</entry> |
| <entry>Scoped allocator adaptor</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>20.14</entry> |
| <entry>Class <code>type_index</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>21</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Strings</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>21.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.2</entry> |
| <entry>Character traits</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.3</entry> |
| <entry>String classes</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.4</entry> |
| <entry>Class template <code>basic_string</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.5</entry> |
| <entry>Numeric Conversions</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.6</entry> |
| <entry>Hash support</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>21.7</entry> |
| <entry>Suffixes for <code>basic_string</code> literals</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>21.7</entry> |
| <entry>Null-terminated sequence utilities</entry> |
| <entry>Partial</entry> |
| <entry>C library dependency. </entry> |
| </row> |
| <row> |
| <entry> |
| <emphasis>22</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Localization</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>22.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>22.2</entry> |
| <entry>Header <code><locale></code> synopsis</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>22.3</entry> |
| <entry>Locales</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>22.4</entry> |
| <entry>Standard <code>locale</code> categories</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>22.5</entry> |
| <entry>Standard code conversion facets</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>22.6</entry> |
| <entry>C Library Locales</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>23</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Containers</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>23.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>23.2</entry> |
| <entry>Container requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>23.3</entry> |
| <entry>Sequence containers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>23.4</entry> |
| <entry>Associative containers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>23.5</entry> |
| <entry>Unordered associative containers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>23.6</entry> |
| <entry>Container adaptors</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>24</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Iterators</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>24.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.2</entry> |
| <entry>Iterator requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.3</entry> |
| <entry>Header <code><iterator></code> synopsis</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.4</entry> |
| <entry>Iterator primitives</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.5</entry> |
| <entry>Iterator adaptors</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.6</entry> |
| <entry>Stream iterators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>24.7</entry> |
| <entry>range access</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>25</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Algorithms</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>25.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>25.2</entry> |
| <entry>Non-modifying sequence operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>25.3</entry> |
| <entry>Mutating sequence operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>25.4</entry> |
| <entry>Sorting and related operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>25.5</entry> |
| <entry>C library algorithms</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>26</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Numerics</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>26.1</entry> |
| <entry>General</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.2</entry> |
| <entry>Numeric type requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.3</entry> |
| <entry>The floating-point environment</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.4</entry> |
| <entry>Complex numbers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.4.10</entry> |
| <entry>Suffixes for complex number literals</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.5</entry> |
| <entry>Random number generation</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.6</entry> |
| <entry>Numeric arrays</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.7</entry> |
| <entry>Generalized numeric operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>26.8</entry> |
| <entry>C Library</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>27</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Input/output library</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>27.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.2</entry> |
| <entry>Iostreams requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.2.1</entry> |
| <entry>Imbue Limitations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.2.2</entry> |
| <entry>Positioning Type Limitations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>27.2.3</entry> |
| <entry>Thread safety</entry> |
| <entry>Partial</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.3</entry> |
| <entry>Forward declarations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.4</entry> |
| <entry>Standard iostream objects</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.5</entry> |
| <entry>Iostreams base classes</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.6</entry> |
| <entry>Stream buffers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.7</entry> |
| <entry>Formatting and manipulators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.7.6</entry> |
| <entry>Quoted manipulators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.8</entry> |
| <entry>String-based streams</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>27.9</entry> |
| <entry>File-based streams</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>28</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Regular expressions</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>28.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.2</entry> |
| <entry>Definitions</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.3</entry> |
| <entry>Requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.4</entry> |
| <entry>Header <code><regex></code> synopsis</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.5</entry> |
| <entry>Namespace <code>std::regex_constants</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.6</entry> |
| <entry>Class <code>regex_error</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>28.7</entry> |
| <entry>Class template <code>regex_traits</code></entry> |
| <entry>Partial</entry> |
| <entry><code>transform_primary</code> is not correctly implemented</entry> |
| </row> |
| <row> |
| <entry>28.8</entry> |
| <entry>Class template <code>basic_regex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.9</entry> |
| <entry>Class template <code>sub_match</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.10</entry> |
| <entry>Class template <code>match_results</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.11</entry> |
| <entry>Regular expression algorithms</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.12</entry> |
| <entry>Regular expression Iterators</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>28.13</entry> |
| <entry>Modified ECMAScript regular expression grammar</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>29</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Atomic operations</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>29.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.2</entry> |
| <entry>Header <code><atomic></code> synopsis</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.3</entry> |
| <entry>Order and consistency</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.4</entry> |
| <entry>Lock-free property</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.5</entry> |
| <entry>Atomic types</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.6</entry> |
| <entry>Operations on atomic types</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.7</entry> |
| <entry>Flag Type and operations</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>29.8</entry> |
| <entry>Fences</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>30</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Thread support</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>30.1</entry> |
| <entry>General</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.2</entry> |
| <entry>Requirements</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.3</entry> |
| <entry>Threads</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>30.3.1</entry> |
| <entry>Class <code>thread</code></entry> |
| <entry>Partial</entry> |
| <entry><code>thread::id</code> comparisons not well-defined</entry> |
| </row> |
| <row> |
| <entry>30.3.2</entry> |
| <entry>Namespace <code>this_thread</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4</entry> |
| <entry>Mutual exclusion</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1</entry> |
| <entry>Mutex requirements</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.1</entry> |
| <entry>In general</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.2</entry> |
| <entry>Mutex types</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.2.1</entry> |
| <entry>Class <code>mutex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.2.2</entry> |
| <entry>Class <code>recursive_mutex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.3</entry> |
| <entry>Timed mutex types</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.3.1</entry> |
| <entry>Class <code>timed_mutex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.3.2</entry> |
| <entry>Class <code>recursive_timed_mutex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.4</entry> |
| <entry>Shared timed mutex types</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.1.4.1</entry> |
| <entry>Class <code>shared_timed_mutex</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.2</entry> |
| <entry>Locks</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.2.1</entry> |
| <entry>Class template <code>lock_guard</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.2.2</entry> |
| <entry>Class template <code>unique_lock</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.2.3</entry> |
| <entry>Class template <code>shared_lock</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.3</entry> |
| <entry>Generic locking algorithms</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.4</entry> |
| <entry>Call once</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.4.4.1</entry> |
| <entry>Struct <code>once_flag</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry>30.4.4.2</entry> |
| <entry>Function <code>call_once</code></entry> |
| <entry>Broken</entry> |
| <entry>Exception support is broken on non-Linux targets. |
| See <link xmlns:xlink="http://www.w3.org/1999/xlink" |
| xlink:href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66146">PR |
| 66146</link>. |
| </entry> |
| </row> |
| <row> |
| <entry>30.5</entry> |
| <entry>Condition variables</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.5.1</entry> |
| <entry>Class <code>condition_variable</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.5.2</entry> |
| <entry>Class <code>condition_variable_any</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6</entry> |
| <entry>Futures</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.1</entry> |
| <entry>Overview</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.2</entry> |
| <entry>Error handling</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.3</entry> |
| <entry>Class <code>future_error</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.4</entry> |
| <entry>Shared state</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.5</entry> |
| <entry>Class template <code>promise</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.6</entry> |
| <entry>Class template <code>future</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.7</entry> |
| <entry>Class template <code>shared_future</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.8</entry> |
| <entry>Function template <code>async</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>30.6.9</entry> |
| <entry>Class template <code>packaged_task</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry> |
| <emphasis>Appendix D</emphasis> |
| </entry> |
| <entry namest="c2" nameend="c4" align="left"> |
| <emphasis>Compatibility features</emphasis> |
| </entry> |
| </row> |
| <row> |
| <entry>D.1</entry> |
| <entry>Increment operator with <code>bool</code> operand</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.2</entry> |
| <entry><code>register</code> keyword</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.3</entry> |
| <entry>Implicit declaration of copy functions</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.4</entry> |
| <entry>Dynamic exception specifications</entry> |
| <entry/> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.5</entry> |
| <entry>C standard library headers</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.6</entry> |
| <entry>Old iostreams members</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.7</entry> |
| <entry><code>char*</code> streams</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.8</entry> |
| <entry>Function objects</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.9</entry> |
| <entry>Binders</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.10</entry> |
| <entry><code>auto_ptr</code></entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.11</entry> |
| <entry>Violating exception-specifications</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| <row> |
| <entry>D.12</entry> |
| <entry>Random shuffle</entry> |
| <entry>Y</entry> |
| <entry/> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <table frame="all" xml:id="table.ts_status"> |
| <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> |
| <?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/2013/n3662.html"> |
| N3662 |
| </link> |
| </entry> |
| <entry>C++ Dynamic Arrays</entry> |
| <entry>N</entry> |
| <entry>Array Extensions 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/2013/n3793.html"> |
| N3793 |
| </link> |
| </entry> |
| <entry>A proposal to add a utility class to represent optional objects</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/2013/n3804.html"> |
| N3804 |
| </link> |
| </entry> |
| <entry>Any library proposal</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/2014/n3866.html"> |
| N3866 |
| </link> |
| </entry> |
| <entry>Invocation type traits, but dropping function_call_operator.</entry> |
| <entry>N</entry> |
| <entry>Library Fundamentals TS</entry> |
| </row> |
| |
| <row> |
| <entry> |
| <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href=""> |
| N3905 |
| </link> |
| </entry> |
| <entry>Faster string searching (Boyer-Moore et al.)</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/n3915.pdf"> |
| N3915 |
| </link> |
| </entry> |
| <entry>apply() call a function with arguments from a tuple</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals TS</entry> |
| </row> |
| |
| <row> |
| <?dbhtml bgcolor="#B0B0B0" ?> |
| <entry> |
| <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3916.pdf"> |
| N3916 |
| </link> |
| </entry> |
| <entry>Polymorphic memory resources</entry> |
| <entry>Partial (missing pool resource and buffer resource classes)</entry> |
| <entry>Library Fundamentals 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/n3920.html"> |
| N3920 |
| </link> |
| </entry> |
| <entry>Extending shared_ptr to support arrays</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/n3921.html"> |
| N3921 |
| </link> |
| </entry> |
| <entry><code>string_view</code>: a non-owning reference to a string</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/n3925.pdf"> |
| N3925 |
| </link> |
| </entry> |
| <entry>A sample proposal</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/n3932.htm"> |
| N3932 |
| </link> |
| </entry> |
| <entry>Variable Templates For Type Traits</entry> |
| <entry>Y</entry> |
| <entry>Library Fundamentals 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/n4100.pdf"> |
| N4100 |
| </link> |
| </entry> |
| <entry>File System</entry> |
| <entry>Y</entry> |
| <entry> |
| Link with |
| <link linkend="manual.intro.using.linkage.experimental"> |
| <option>-lstdc++fs</option></link> |
| </entry> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </table> |
| |
| <section xml:id="iso.2014.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info> |
| |
| <section xml:id="iso.2014.filesystemts" xreflabel="Implementation Specific Behavior of the Filesystem TS"><info><title>Filesystem TS</title></info> |
| <para> |
| <emphasis>2.1 POSIX conformance [fs.conform.9945]</emphasis> |
| The behavior of the filesystem library implementation will depend on |
| the target operating system. Some features will not be supported |
| on some targets. Symbolic links and file permissions |
| are not supported on Windows. |
| </para> |
| <para> |
| <emphasis>15.30 Rename [fs.op.rename]</emphasis> |
| On Windows, <code>experimental::filesystem::rename</code> |
| is implemented by calling <code>MoveFileExW</code> and so |
| does not meet the requirements of POSIX <code>rename</code> |
| when one or both of the paths resolves to an existing directory. |
| Specifically, it is possible to rename a directory so it replaces |
| a non-directory (POSIX requires an error in that case), |
| and it is not possible to rename a directory to replace another |
| directory (POSIX requires that to work if the directory being |
| replaced is empty). |
| </para> |
| </section> |
| </section> |
| |
| </section> |