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>
|
||||
|
||||
* 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
|
||||
(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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -95,13 +95,13 @@ until the last weak reference is dropped.
|
|||
<term><classname>_Sp_counted_base_impl<Ptr, Deleter, Lp></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<Ptr></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<Ptr></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 & 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<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>
|
||||
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue