mirror of git://gcc.gnu.org/git/gcc.git
appendix_contributing.xml: Do not use "here" as link text.
* 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. From-SVN: r181532
This commit is contained in:
parent
aa198500fe
commit
062a902517
|
@ -1,3 +1,18 @@
|
||||||
|
2011-11-20 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
|
* 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.
|
||||||
|
|
||||||
2011-11-19 Paolo Carlini <paolo.carlini@oracle.com>
|
2011-11-19 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* include/debug/bitset (operator[](size_t) const): Declare constexpr.
|
* include/debug/bitset (operator[](size_t) const): Declare constexpr.
|
||||||
|
|
|
@ -713,14 +713,15 @@
|
||||||
For those people who are not part of the ISO Library Group
|
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
|
(i.e., nearly all of us needing to read this page in the first
|
||||||
place), a public list of the library defects is occasionally
|
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++.
|
Some of these issues have resulted in code changes in libstdc++.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
If you think you've discovered a new bug that is not listed,
|
If you think you've discovered a new bug that is not listed,
|
||||||
please post a message describing your problem
|
please post a message describing your problem to the author of
|
||||||
to <email>libstdc++@gcc.gnu.org</email> or the Usenet group
|
the library issues list or the Usenet group comp.lang.c++.moderated.
|
||||||
comp.lang.c++.moderated.
|
|
||||||
</para>
|
</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
|
|
@ -45,10 +45,10 @@
|
||||||
two meeting commitment for voting rights, may get a copy of
|
two meeting commitment for voting rights, may get a copy of
|
||||||
the standard from their respective national standards
|
the standard from their respective national standards
|
||||||
organization. In the USA, this national standards
|
organization. In the USA, this national standards
|
||||||
organization is ANSI and their web-site is right
|
organization is
|
||||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.ansi.org">here.</link>
|
<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, clicking this link will take you to directly to the place where you can
|
(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=ISO%2FIEC+14882:2003">buy the standard on-line</link>.)
|
<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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -56,17 +56,16 @@
|
||||||
<para>
|
<para>
|
||||||
The library working group bugs, and known defects, can
|
The library working group bugs, and known defects, can
|
||||||
be obtained here:
|
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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The newsgroup dedicated to standardization issues is
|
The newsgroup dedicated to standardization issues is
|
||||||
comp.std.c++: this FAQ for this group is quite useful and
|
comp.std.c++: the
|
||||||
can be
|
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.comeaucomputing.com/csc/faq.html">FAQ</link>
|
||||||
found <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.comeaucomputing.com/csc/faq.html">
|
for this group is quite useful.
|
||||||
here </link>.
|
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
|
@ -83,15 +82,15 @@
|
||||||
<para>
|
<para>
|
||||||
Be familiar with the extensions that preceded these
|
Be familiar with the extensions that preceded these
|
||||||
general GNU rules. These style issues for libstdc++ can be
|
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>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
And last but certainly not least, read the
|
And last but certainly not least, read the
|
||||||
library-specific information
|
library-specific information found in
|
||||||
found <link linkend="appendix.porting"> here</link>.
|
<link linkend="appendix.porting">Porting and Maintenance</link>.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
@ -271,7 +270,7 @@ It has subdirectories:
|
||||||
Files that are used in constructing the library, but are not
|
Files that are used in constructing the library, but are not
|
||||||
installed.
|
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
|
Test programs are here, and may be used to begin to exercise the
|
||||||
library. Support for "make check" and "make check-install" is
|
library. Support for "make check" and "make check-install" is
|
||||||
complete, and runs through all the subdirectories here when this
|
complete, and runs through all the subdirectories here when this
|
||||||
|
|
|
@ -119,8 +119,9 @@ A couple of notes on the standard.
|
||||||
<para>
|
<para>
|
||||||
First, why is <code>messages_base::catalog</code> specified as a typedef
|
First, why is <code>messages_base::catalog</code> specified as a typedef
|
||||||
to int? This makes sense for implementations that use
|
to int? This makes sense for implementations that use
|
||||||
<code>catopen</code>, but not for others. Fortunately, it's not heavily
|
<code>catopen</code> and define <code>nl_catd</code> as int, but not for
|
||||||
used and so only a minor irritant.
|
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>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
|
|
|
@ -95,13 +95,13 @@ until the last weak reference is dropped.
|
||||||
<term><classname>_Sp_counted_base_impl<Ptr, Deleter, Lp></classname></term>
|
<term><classname>_Sp_counted_base_impl<Ptr, Deleter, Lp></classname></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Inherits from _Sp_counted_base and stores a pointer of type <type>Ptr</type>
|
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
|
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
|
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
|
default deleter is not "checked" because GCC already issues a warning if
|
||||||
<function>delete</function> is used with an incomplete type.
|
<function>delete</function> is used with an incomplete type.
|
||||||
This is the only derived type used by <classname>shared_ptr<Ptr></classname>
|
This is the only derived type used by <classname>tr1::shared_ptr<Ptr></classname>
|
||||||
and it is never used by <classname>shared_ptr</classname>, which uses one of
|
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.
|
the following types, depending on how the shared_ptr is constructed.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -149,11 +149,6 @@ that simplifies the implementation slightly.
|
||||||
|
|
||||||
</variablelist>
|
</variablelist>
|
||||||
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section><info><title>Thread Safety</title></info>
|
|
||||||
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
C++11-only features are: rvalue-ref/move support, allocator support,
|
C++11-only features are: rvalue-ref/move support, allocator support,
|
||||||
aliasing constructor, make_shared & allocate_shared. Additionally,
|
aliasing constructor, make_shared & allocate_shared. Additionally,
|
||||||
|
@ -161,6 +156,11 @@ the constructors taking <classname>auto_ptr</classname> parameters are
|
||||||
deprecated in C++11 mode.
|
deprecated in C++11 mode.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section><info><title>Thread Safety</title></info>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The
|
The
|
||||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety">Thread
|
<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>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<type>_S_Atomic</type>
|
<constant>_S_Atomic</constant>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Selected when GCC supports a builtin atomic compare-and-swap operation
|
Selected when GCC supports a builtin atomic compare-and-swap operation
|
||||||
|
@ -256,7 +256,7 @@ synchronisation.
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<type>_S_Mutex</type>
|
<constant>_S_Mutex</constant>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The _Sp_counted_base specialization for this policy contains a mutex,
|
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>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
<type>_S_Single</type>
|
<constant>_S_Single</constant>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
This policy uses a non-reentrant add_ref_lock() with no locking. It is
|
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>
|
</para>
|
||||||
</section>
|
</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>
|
<section><info><title>Related functions and classes</title></info>
|
||||||
|
|
||||||
|
@ -377,34 +351,6 @@ be private.
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!--- XXX
|
|
||||||
<listitem>
|
|
||||||
<type>_Sp_counted_base<Lp></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<Ptr, Deleter, Lp></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<Ptr></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>
|
<section xml:id="shared_ptr.using"><info><title>Use</title></info>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2409,7 +2409,8 @@ particular release.
|
||||||
<entry>30.4.1.3</entry>
|
<entry>30.4.1.3</entry>
|
||||||
<entry>Timed mutex types</entry>
|
<entry>Timed mutex types</entry>
|
||||||
<entry/>
|
<entry/>
|
||||||
<entry/>
|
<entry>On POSIX sytems these types are only defined if the OS
|
||||||
|
supports the POSIX Timeouts option. </entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>30.4.1.3.1</entry>
|
<entry>30.4.1.3.1</entry>
|
||||||
|
@ -2627,5 +2628,59 @@ particular release.
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</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>
|
</section>
|
||||||
|
|
|
@ -1779,4 +1779,20 @@ release.
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</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>
|
</section>
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<para>If you don't know what functors are, you're not alone. Many people
|
<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
|
get slightly the wrong idea. In the interest of not reinventing
|
||||||
the wheel, we will refer you to the introduction to the functor
|
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
|
<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>.
|
http://www.sgi.com/tech/stl/functors.html</link>.
|
||||||
</para>
|
</para>
|
||||||
|
|
Loading…
Reference in New Issue