summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/doc
diff options
context:
space:
mode:
authorredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-20 19:56:48 +0000
committerredi <redi@138bc75d-0d04-0410-961f-82ee72b054a4>2011-11-20 19:56:48 +0000
commit297637feab241808d706a87f227b55472fcea47f (patch)
tree1797c4023a0145cf9db98c72fd1863295e816db0 /libstdc++-v3/doc
parent0fd2a6af3fc33ea495638b596d9a4fe198749c88 (diff)
downloadppe42-gcc-297637feab241808d706a87f227b55472fcea47f.tar.gz
ppe42-gcc-297637feab241808d706a87f227b55472fcea47f.zip
* doc/xml/manual/appendix_contributing.xml: Do not use "here" as link
text. * doc/xml/faq.xml: Likewise. Do not request standard library issues to be reported to the libstdc++ mailing list. * doc/xml/manual/status_cxx2011.xml: Document implementation-defined behaviour. * doc/xml/manual/status_cxxtr1.xml: Likewise. * doc/xml/manual/utilities.xml: Fix grammar, probably caused by a global search and replace of "part" by "chapter". * doc/xml/manual/shared_ptr.xml: Remove outdated information. * doc/xml/manual/messages.xml: Be more specific about systems where using 'int' for catalog handle is not a problem, mentioned LWG issue. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181532 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/doc')
-rw-r--r--libstdc++-v3/doc/xml/faq.xml9
-rw-r--r--libstdc++-v3/doc/xml/manual/appendix_contributing.xml25
-rw-r--r--libstdc++-v3/doc/xml/manual/messages.xml5
-rw-r--r--libstdc++-v3/doc/xml/manual/shared_ptr.xml78
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxx2011.xml57
-rw-r--r--libstdc++-v3/doc/xml/manual/status_cxxtr1.xml16
-rw-r--r--libstdc++-v3/doc/xml/manual/utilities.xml2
7 files changed, 105 insertions, 87 deletions
diff --git a/libstdc++-v3/doc/xml/faq.xml b/libstdc++-v3/doc/xml/faq.xml
index af9b6da82fe..86142ec9c46 100644
--- a/libstdc++-v3/doc/xml/faq.xml
+++ b/libstdc++-v3/doc/xml/faq.xml
@@ -713,14 +713,15 @@
For those people who are not part of the ISO Library Group
(i.e., nearly all of us needing to read this page in the first
place), a public list of the library defects is occasionally
- published <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/">here</link>.
+ published on <link xmlns:xlink="http://www.w3.org/1999/xlink"
+ xlink:href="http://www.open-std.org/jtc1/sc22/wg21/">the WG21
+ website</link>.
Some of these issues have resulted in code changes in libstdc++.
</para>
<para>
If you think you've discovered a new bug that is not listed,
- please post a message describing your problem
- to <email>libstdc++@gcc.gnu.org</email> or the Usenet group
- comp.lang.c++.moderated.
+ please post a message describing your problem to the author of
+ the library issues list or the Usenet group comp.lang.c++.moderated.
</para>
</answer>
</qandaentry>
diff --git a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
index 49cbcab9ba3..d060f45a6d3 100644
--- a/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
+++ b/libstdc++-v3/doc/xml/manual/appendix_contributing.xml
@@ -45,10 +45,10 @@
two meeting commitment for voting rights, may get a copy of
the standard from their respective national standards
organization. In the USA, this national standards
- organization is ANSI and their web-site is right
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ansi.org">here.</link>
- (And if you've already registered with them, clicking this link will take you to directly to the place where you can
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003">buy the standard on-line</link>.)
+ organization is
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ansi.org">ANSI</link>.
+ (And if you've already registered with them you can
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2003">buy the standard on-line</link>.)
</para>
</listitem>
@@ -56,17 +56,16 @@
<para>
The library working group bugs, and known defects, can
be obtained here:
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21 </link>
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.open-std.org/jtc1/sc22/wg21/">http://www.open-std.org/jtc1/sc22/wg21</link>
</para>
</listitem>
<listitem>
<para>
The newsgroup dedicated to standardization issues is
- comp.std.c++: this FAQ for this group is quite useful and
- can be
- found <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.comeaucomputing.com/csc/faq.html">
- here </link>.
+ comp.std.c++: the
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.comeaucomputing.com/csc/faq.html">FAQ</link>
+ for this group is quite useful.
</para>
</listitem>
@@ -83,15 +82,15 @@
<para>
Be familiar with the extensions that preceded these
general GNU rules. These style issues for libstdc++ can be
- found <link linkend="contrib.coding_style">here</link>.
+ found in <link linkend="contrib.coding_style">Coding Style</link>.
</para>
</listitem>
<listitem>
<para>
And last but certainly not least, read the
- library-specific information
- found <link linkend="appendix.porting"> here</link>.
+ library-specific information found in
+ <link linkend="appendix.porting">Porting and Maintenance</link>.
</para>
</listitem>
</itemizedlist>
@@ -271,7 +270,7 @@ It has subdirectories:
Files that are used in constructing the library, but are not
installed.
- testsuites/[backward, demangle, ext, performance, thread, 17_* to 27_*]
+ testsuites/[backward, demangle, ext, performance, thread, 17_* to 30_*]
Test programs are here, and may be used to begin to exercise the
library. Support for "make check" and "make check-install" is
complete, and runs through all the subdirectories here when this
diff --git a/libstdc++-v3/doc/xml/manual/messages.xml b/libstdc++-v3/doc/xml/manual/messages.xml
index d6ce1f7f7a3..4dea4b3738b 100644
--- a/libstdc++-v3/doc/xml/manual/messages.xml
+++ b/libstdc++-v3/doc/xml/manual/messages.xml
@@ -119,8 +119,9 @@ A couple of notes on the standard.
<para>
First, why is <code>messages_base::catalog</code> specified as a typedef
to int? This makes sense for implementations that use
-<code>catopen</code>, but not for others. Fortunately, it's not heavily
-used and so only a minor irritant.
+<code>catopen</code> and define <code>nl_catd</code> as int, but not for
+others. Fortunately, it's not heavily used and so only a minor irritant.
+This has been reported as a possible defect in the standard (LWG 2028).
</para>
<para>
diff --git a/libstdc++-v3/doc/xml/manual/shared_ptr.xml b/libstdc++-v3/doc/xml/manual/shared_ptr.xml
index 6e3392f88ee..be1aaf655f2 100644
--- a/libstdc++-v3/doc/xml/manual/shared_ptr.xml
+++ b/libstdc++-v3/doc/xml/manual/shared_ptr.xml
@@ -95,13 +95,13 @@ until the last weak reference is dropped.
<term><classname>_Sp_counted_base_impl&lt;Ptr, Deleter, Lp&gt;</classname></term>
<listitem>
<para>
-Inherits from _Sp_counted_base and stores a pointer of type <type>Ptr</type>
-and a deleter of type <code>Deleter</code>. <code>_Sp_deleter</code> is
+Inherits from _Sp_counted_base and stores a pointer of type <code>Ptr</code>
+and a deleter of type <code>Deleter</code>. <classname>_Sp_deleter</classname> is
used when the user doesn't supply a custom deleter. Unlike Boost's, this
default deleter is not "checked" because GCC already issues a warning if
<function>delete</function> is used with an incomplete type.
-This is the only derived type used by <classname>shared_ptr&lt;Ptr&gt;</classname>
-and it is never used by <classname>shared_ptr</classname>, which uses one of
+This is the only derived type used by <classname>tr1::shared_ptr&lt;Ptr&gt;</classname>
+and it is never used by <classname>std::shared_ptr</classname>, which uses one of
the following types, depending on how the shared_ptr is constructed.
</para>
</listitem>
@@ -149,11 +149,6 @@ that simplifies the implementation slightly.
</variablelist>
- </section>
-
- <section><info><title>Thread Safety</title></info>
-
-
<para>
C++11-only features are: rvalue-ref/move support, allocator support,
aliasing constructor, make_shared &amp; allocate_shared. Additionally,
@@ -161,6 +156,11 @@ the constructors taking <classname>auto_ptr</classname> parameters are
deprecated in C++11 mode.
</para>
+
+ </section>
+
+ <section><info><title>Thread Safety</title></info>
+
<para>
The
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety">Thread
@@ -243,7 +243,7 @@ available policies are:
<orderedlist>
<listitem>
<para>
- <type>_S_Atomic</type>
+ <constant>_S_Atomic</constant>
</para>
<para>
Selected when GCC supports a builtin atomic compare-and-swap operation
@@ -256,7 +256,7 @@ synchronisation.
<listitem>
<para>
- <type>_S_Mutex</type>
+ <constant>_S_Mutex</constant>
</para>
<para>
The _Sp_counted_base specialization for this policy contains a mutex,
@@ -267,7 +267,7 @@ builtins aren't available so explicit memory barriers are needed in places.
<listitem>
<para>
- <type>_S_Single</type>
+ <constant>_S_Single</constant>
</para>
<para>
This policy uses a non-reentrant add_ref_lock() with no locking. It is
@@ -285,32 +285,6 @@ used when libstdc++ is built without <literal>--enable-threads</literal>.
</para>
</section>
- <section><info><title>Dual C++11 and TR1 Implementation</title></info>
-
-
-<para>
-The interface of <classname>tr1::shared_ptr</classname> was extended for C++11
-with support for rvalue-references and the other features from N2351.
-The <classname>_Sp_counted_base</classname> base class is implemented in
-<filename>tr1/boost_sp_shared_count.h</filename> and is common to the TR1
-and C++11 versions of <classname>shared_ptr</classname>.
-</para>
-
-<para>
-The classes derived from <classname>_Sp_counted_base</classname> (see Class Hierarchy
-above) and <classname>__shared_count</classname> are implemented separately for C++11
-and TR1, in <filename>bits/shared_ptr.h</filename> and
-<filename>tr1/shared_ptr.h</filename> respectively.
-</para>
-
-<para>
-The TR1 implementation is considered relatively stable, so is unlikely to
-change unless bug fixes require it. If the code that is common to both
-C++11 and TR1 versions needs to diverge further then it might be necessary to
-duplicate <classname>_Sp_counted_base</classname> and only make changes to
-the C++11 version.
-</para>
-</section>
<section><info><title>Related functions and classes</title></info>
@@ -377,34 +351,6 @@ be private.
</section>
-<!--- XXX
- <listitem>
- <type>_Sp_counted_base&lt;Lp&gt;</type>
- <para>
-The base of the hierarchy is parameterized on the lock policy alone.
-_Sp_counted_base doesn't depend on the type of pointer being managed,
-it only maintains the reference counts and calls virtual functions when
-the counts drop to zero. The managed object is destroyed when the last
-strong reference is dropped, but the _Sp_counted_base itself must exist
-until the last weak reference is dropped.
- </para>
- </listitem>
-
- <listitem>
- <type>_Sp_counted_base_impl&lt;Ptr, Deleter, Lp&gt;</type>
- <para>
-Inherits from _Sp_counted_base and stores a pointer of type <code>Ptr</code>
-and a deleter of type <code>Deleter</code>. <code>_Sp_deleter</code> is
-used when the user doesn't supply a custom deleter. Unlike Boost's, this
-default deleter is not "checked" because GCC already issues a warning if
-<code>delete</code> is used with an incomplete type.
-This is the only derived type used by <code>tr1::shared_ptr&lt;Ptr&gt;</code>
-and it is never used by <code>std::shared_ptr</code>, which uses one of
-the following types, depending on how the shared_ptr is constructed.
- </para>
- </listitem>
--->
-
<section xml:id="shared_ptr.using"><info><title>Use</title></info>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
index 6f53a73348c..34aff81101f 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxx2011.xml
@@ -2409,7 +2409,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>
@@ -2627,5 +2628,59 @@ particular release.
</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><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.
+ </listitem>
+ <listitem><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.
+ </listitem>
+ <listitem><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.
+ </listitem>
+ <listitem><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.
+ </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>
diff --git a/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml b/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
index 321c4ba269c..58571f2dde7 100644
--- a/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
+++ b/libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
@@ -1779,4 +1779,20 @@ release.
</tgroup>
</table>
+<section xml:id="iso.tr1.specific" xreflabel="Implementation Specific"><info><title>Implementation Specific Behavior</title></info>
+
+ <para>For behaviour which is specified by the 1998 and 2003 standards,
+ see <link linkend="iso.1998.specific">C++ 1998/2003 Implementation
+ Specific Behavior</link>. This section documents behaviour which
+ is required by TR1.
+ </para>
+
+ <para>
+ <emphasis>3.6.4 [tr.func.bind.place]/1</emphasis> There are 29
+ placeholders defined and the placeholder types are
+ <literal>Assignable</literal>.
+ </para>
+
+</section>
+
</section>
diff --git a/libstdc++-v3/doc/xml/manual/utilities.xml b/libstdc++-v3/doc/xml/manual/utilities.xml
index 5c3a8fd4864..a60bd34c6d4 100644
--- a/libstdc++-v3/doc/xml/manual/utilities.xml
+++ b/libstdc++-v3/doc/xml/manual/utilities.xml
@@ -25,7 +25,7 @@
<para>If you don't know what functors are, you're not alone. Many people
get slightly the wrong idea. In the interest of not reinventing
the wheel, we will refer you to the introduction to the functor
- concept written by SGI as chapter of their STL, in
+ concept written by SGI as part of their STL, in
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.sgi.com/tech/stl/functors.html">their
http://www.sgi.com/tech/stl/functors.html</link>.
</para>
OpenPOWER on IntegriCloud