OSDN Git Service

* doc/xml/manual/status_cxx2011.xml: Document that N3189 is missing.
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / doc / xml / manual / status_cxx2011.xml
index 2715b2a..e26db6f 100644 (file)
@@ -14,6 +14,7 @@
 </info>
 
 <para>
+<anchor xml:id="status.iso.200x" /> <!-- preserve links to old section ID -->
 This table is based on the table of contents of ISO/IEC
 JTC1 SC22 WG21 Doc No: N3290 Date: 2011-04-11
 Final Draft International Standard, Standard for Programming Language C++
@@ -157,10 +158,13 @@ particular release.
       <entry>C library dependency for quick_exit, at_quick_exit</entry>
     </row>
     <row>
+      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>18.6</entry>
       <entry>Dynamic memory management</entry>
-      <entry>Y</entry>
-      <entry/>
+      <entry>Partial</entry>
+      <entry>Missing <code>get_new_handler</code>.
+             <code>set_new_handler</code> is not thread-safe.
+      </entry>
     </row>
     <row>
       <entry>18.7</entry>
@@ -205,10 +209,13 @@ particular release.
       <entry/>
     </row>
     <row>
+      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>18.8.3</entry>
       <entry>Abnormal termination</entry>
-      <entry>Y</entry>
-      <entry/>
+      <entry>Partial</entry>
+      <entry>Missing <code>get_terminate</code>.
+             <code>set_terminate</code> is not thread-safe.
+      </entry>
     </row>
     <row>
       <entry>18.8.4</entry>
@@ -527,11 +534,10 @@ particular release.
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>20.6.3</entry>
       <entry>Pointer traits</entry>
-      <entry>Partial</entry>
-      <entry>Missing rebind</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <?dbhtml bgcolor="#B0B0B0" ?>
@@ -560,11 +566,10 @@ particular release.
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>20.6.8</entry>
       <entry>Allocator traits</entry>
-      <entry>Partial</entry>
-      <entry>Missing rebind_alloc and rebind_traits</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <entry>20.6.9</entry>
@@ -989,11 +994,10 @@ particular release.
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#C8B0B0" ?>
       <entry>20.11.7.2</entry>
       <entry>Class <code>steady_clock</code></entry>
-      <entry>N</entry>
-      <entry>Support old <code>monotonic_clock</code> spec instead</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <entry>20.11.7.3</entry>
@@ -1122,11 +1126,10 @@ particular release.
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>21.4</entry>
       <entry>Class template <code>basic_string</code></entry>
-      <entry>Partial</entry>
-      <entry>Missing pop_back</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <entry>21.5</entry>
@@ -1373,10 +1376,12 @@ particular release.
       <entry/>
     </row>
     <row>
+      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>23.2.1</entry>
       <entry>General container requirements</entry>
-      <entry>Y</entry>
-      <entry/>
+      <entry>Partial</entry>
+      <entry>Only <code>vector</code> meets the requirements
+             relating to allocator use and propagation.</entry>
     </row>
     <row>
       <entry>23.2.2</entry>
@@ -1398,11 +1403,10 @@ particular release.
       <entry>Missing emplace members</entry>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>23.2.5</entry>
       <entry>Unordered associative containers</entry>
-      <entry>Partial</entry>
-      <entry>Missing emplace members</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <entry>23.3</entry>
@@ -2133,8 +2137,9 @@ particular release.
       <entry>Iostreams base classes</entry>
       <entry>Partial</entry>
       <entry>
-        Missing move and swap operations on <code>basic_ios</code>. Missing
-               <code>make_error_code</code> and <code>make_error_condition</code>.
+        Missing move and swap operations on <code>basic_ios</code>.
+        Missing <code>io_errc</code> and <code>iostream_category</code>.
+        <code>ios_base::failure</code> is not derived from <code>system_error</code>.
       </entry>
     </row>
     <row>
@@ -2282,28 +2287,23 @@ particular release.
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#C8B0B0" ?>
+      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>29.3</entry>
       <entry>Order and consistency</entry>
-      <entry>N</entry>
+      <entry>Partial</entry>
       <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>29.4</entry>
       <entry>Lock-free property</entry>
-      <entry>Partial</entry>
-      <entry>Missing <code>ATOMIC_BOOL_LOCK_FREE</code> and
-        <code>ATOMIC_POINTER_LOCK_FREE</code>.
-        Based on _GLIBCXX_ATOMIC_PROPERTY
-      </entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
-      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>29.5</entry>
       <entry>Atomic types</entry>
-      <entry>Partial</entry>
-      <entry>Missing constexpr</entry>
+      <entry>Y</entry>
+      <entry/>
     </row>
     <row>
       <entry>29.6</entry>
@@ -2403,7 +2403,8 @@ particular release.
       <entry>30.4.1.3</entry>
       <entry>Timed mutex types</entry>
       <entry/>
-      <entry/>
+      <entry>On POSIX sytems these types are only defined if the OS
+         supports the POSIX Timeouts option. </entry>
     </row>
     <row>
       <entry>30.4.1.3.1</entry>
@@ -2520,14 +2521,14 @@ particular release.
       <entry>30.6.6</entry>
       <entry>Class template <code>future</code></entry>
       <entry>Partial</entry>
-      <entry>Timed waiting functions do not return future_status</entry>
+      <entry>Timed waiting functions do not return future_status::deferred</entry>
     </row>
     <row>
       <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>30.6.7</entry>
       <entry>Class template <code>shared_future</code></entry>
       <entry>Partial</entry>
-      <entry>Timed waiting functions do not return future_status</entry>
+      <entry>Timed waiting functions do not return future_status::deferred</entry>
     </row>
     <row>
       <entry>30.6.8</entry>
@@ -2611,15 +2612,72 @@ particular release.
       <entry/>
     </row>
     <row>
+      <?dbhtml bgcolor="#B0B0B0" ?>
       <entry>D.11</entry>
       <entry>Violating exception-specifications</entry>
-      <entry/>
-      <entry/>
+      <entry>Partial</entry>
+      <entry>Missing <code>get_unexpected</code>.
+             <code>set_unexpected</code> is not thread-safe.
+      </entry>
     </row>
 
   </tbody>
 </tgroup>
 </table>
 
+<section xml:id="iso.2011.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
+
+   <para>For behaviour which is also specified by the 1998 and 2003 standards,
+      see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
+      Specific Behavior</link>. This section only documents behaviour which
+      is new in the 2011 standard.
+   </para>
+
+   <para>
+      <emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29
+      placeholders defined and the placeholder types are
+      <literal>CopyAssignable</literal>.
+   </para>
+
+   <para>
+      <emphasis>30.2.3 [thread.req.native]/1</emphasis>
+      <classname>native_handle_type</classname> and
+      <methodname>native_handle</methodname> are provided. The handle types
+      are defined in terms of the Gthreads abstraction layer.
+      <itemizedlist>
+         <listitem><para><classname>thread</classname>: The native handle type is
+            a typedef for <code>__gthread_t</code> i.e. <code>pthread_t</code>
+            when GCC is configured with the <literal>posix</literal> thread
+            model. The value of the native handle is undefined for a thread
+            which is not joinable.
+         </para></listitem>
+         <listitem><para><classname>mutex</classname> and
+            <classname>timed_mutex</classname>:
+            The native handle type is <code>__gthread_mutex_t*</code> i.e.
+            <code>pthread_mutex_t*</code> for the <literal>posix</literal>
+            thread model.
+         </para></listitem>
+         <listitem><para><classname>recursive_mutex</classname> and
+         <classname>recursive_timed_mutex</classname>:
+            The native handle type is <code>__gthread_recursive_mutex_t*</code>
+            i.e. <code>pthread_mutex_t*</code> for the <literal>posix</literal>
+            thread model.
+         </para></listitem>
+         <listitem><para><classname>condition_variable</classname>: The native
+            handle type is <code>__gthread_cond_t*</code> i.e.
+            <code>pthread_cond_t*</code> for the <literal>posix</literal>
+            thread model.
+         </para></listitem>
+      </itemizedlist>
+   </para>
+
+   <para>
+      <emphasis>30.6.1 [futures.overview]/2</emphasis>
+      <code>launch</code> is a scoped enumeration type with
+      overloaded operators to support bitmask operations. There are no
+      additional bitmask elements defined.
+   </para>
+
+</section>
 
 </section>