* doc/xml/faq.xml: Add link.
* doc/xml/manual/backwards_compatibility.xml: Remove outdated
information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
* doc/xml/manual/io.xml: Update broken link.
* doc/html/*: Regenerate.
From-SVN: r246425
+2017-03-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/faq.xml: Add link.
+ * doc/xml/manual/backwards_compatibility.xml: Remove outdated
+ information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
+ * doc/xml/manual/io.xml: Update broken link.
+ * doc/html/*: Regenerate.
+
2017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com>
Implement LWG 2686, Why is std::hash specialized for error_code,
page</a>.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.get_iso_cxx"></a><a id="q-get_iso_cxx"></a><p><strong>7.6.</strong></p></td><td align="left" valign="top"><p>How do I get a copy of the ISO C++ Standard?
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-get_iso_cxx"></a></td><td align="left" valign="top"><p>
- Copies of the full ISO 14882 standard are available on line via
- the ISO mirror site for committee members. Non-members, or those
- who have not paid for the privilege of sitting on the committee
- and sustained their 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 website is
- right <a class="link" href="http://www.ansi.org" target="_top">here</a>. (And if
- you've already registered with them, clicking this link will take
- you to directly to the place where you can
- <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC+14882:2003" target="_top">buy the standard on-line</a>.
- </p><p>
- Who is your country's member body? Visit the
- <a class="link" href="http://www.iso.ch/" target="_top">ISO homepage</a> and find out!
- </p><p>
- The 2003 version of the standard (the 1998 version plus TC1) is
- available in print, ISBN 0-470-84674-7.
+ Please refer to the <a class="link" href="manual/appendix_contributing.html" title="Appendix A. Contributing">Contributing</a>
+ section in our manual.
</p></td></tr><tr class="question"><td align="left" valign="top"><a id="faq.what_is_abi"></a><a id="q-what_is_abi"></a><p><strong>7.7.</strong></p></td><td align="left" valign="top"><p>
What's an ABI and why is it so messy?
</p></td></tr><tr class="answer"><td align="left" valign="top"><a id="a-what_is_abi"></a></td><td align="left" valign="top"><p>
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.at">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.eof">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.stringclear">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.ostreamform_istreamscan">
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
extensions
-</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#backwards.third.headers">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="manual/backwards.html#backwards.third.headers">Pre-ISO headers removed</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a href="manual/backwards.html#backwards.third.support_cxx98">
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.at">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.eof">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringclear">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.ostreamform_istreamscan">
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
extensions
-</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.support_cxx98">
the standard from their respective national standards
organization. In the USA, this national standards
organization is
- <a class="link" href="http://www.ansi.org" target="_top">ANSI</a>.
- (And if you've already registered with them you can
- <a class="link" href="http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2fISO%2fIEC+14882-2012" target="_top">buy the standard on-line</a>.)
+ <a class="link" href="https://www.ansi.org" target="_top">ANSI</a>.
+ (And if you've already registered with them you can <a class="link" href="https://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2fIEC+14882%3a2014" target="_top">buy
+ the standard on-line</a>.)
</p></li><li class="listitem"><p>
The library working group bugs, and known defects, can
be obtained here:
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.at">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.eof">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringclear">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.ostreamform_istreamscan">
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
extensions
-</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.support_cxx98">
of the SGI STL (version 3.3), with extensive changes.
</p><p>A more formal description of the V3 goals can be found in the
official <a class="link" href="source_design_notes.html" title="Design Notes">design document</a>.
- </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.headers"></a>Pre-ISO headers moved to backwards or removed</h4></div></div></div><p> The pre-ISO C++ headers
+ </p><p>Portability notes and known implementation limitations are as follows.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="backwards.third.headers"></a>Pre-ISO headers removed</h4></div></div></div><p> The pre-ISO C++ headers
(<code class="filename"><iostream.h></code>,
<code class="filename"><defalloc.h></code> etc.) are
- available, unlike previous libstdc++ versions, but inclusion
- generates a warning that you are using deprecated headers.
-</p><p>This compatibility layer is constructed by including the
- standard C++ headers, and injecting any items in
- <code class="code">std::</code> into the global namespace.
- </p><p>For those of you new to ISO C++ (welcome, time travelers!), no,
- that isn't a typo. Yes, the headers really have new names.
- Marshall Cline's C++ FAQ Lite has a good explanation in <a class="link" href="http://www.parashift.com/c++-faq-lite/std-headers.html" target="_top">What's
+ not supported.
+</p><p>For those of you new to ISO C++ (welcome, time travelers!), the
+ ancient pre-ISO headers have new names.
+ The C++ FAQ has a good explanation in <a class="link" href="https://isocpp.org/wiki/faq/coding-standards#std-headers" target="_top">What's
the difference between <xxx> and <xxx.h> headers?</a>.
- </p><p> Some include adjustment may be required. What follows is an
-autoconf test that defines <code class="code">PRE_STDCXX_HEADERS</code> when they
-exist.</p><pre class="programlisting">
-# AC_HEADER_PRE_STDCXX
-AC_DEFUN([AC_HEADER_PRE_STDCXX], [
- AC_CACHE_CHECK(for pre-ISO C++ include files,
- ac_cv_cxx_pre_stdcxx,
- [AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wno-deprecated"
-
- # Omit defalloc.h, as compilation with newer compilers is problematic.
- AC_TRY_COMPILE([
- #include <new.h>
- #include <iterator.h>
- #include <alloc.h>
- #include <set.h>
- #include <hashtable.h>
- #include <hash_set.h>
- #include <fstream.h>
- #include <tempbuf.h>
- #include <istream.h>
- #include <bvector.h>
- #include <stack.h>
- #include <rope.h>
- #include <complex.h>
- #include <ostream.h>
- #include <heap.h>
- #include <iostream.h>
- #include <function.h>
- #include <multimap.h>
- #include <pair.h>
- #include <stream.h>
- #include <iomanip.h>
- #include <slist.h>
- #include <tree.h>
- #include <vector.h>
- #include <deque.h>
- #include <multiset.h>
- #include <list.h>
- #include <map.h>
- #include <algobase.h>
- #include <hash_map.h>
- #include <algo.h>
- #include <queue.h>
- #include <streambuf.h>
- ],,
- ac_cv_cxx_pre_stdcxx=yes, ac_cv_cxx_pre_stdcxx=no)
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- if test "$ac_cv_cxx_pre_stdcxx" = yes; then
- AC_DEFINE(PRE_STDCXX_HEADERS,,[Define if pre-ISO C++ header files are present. ])
- fi
-])
-</pre><p>Porting between pre-ISO headers and ISO headers is simple: headers
+ </p><p>Porting between pre-ISO headers and ISO headers is simple: headers
like <code class="filename"><vector.h></code> can be replaced with <code class="filename"><vector></code> and a using
directive <code class="code">using namespace std;</code> can be put at the global
scope. This should be enough to get this code compiling, assuming the
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.at">No <code class="code">vector::at</code>, <code class="code">deque::at</code>, <code class="code">string::at</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.eof">No <code class="code">std::char_traits<char>::eof</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringclear">No <code class="code">string::clear</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.ostreamform_istreamscan">
Removal of <code class="code">ostream::form</code> and <code class="code">istream::scan</code>
extensions
-</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers moved to backwards or removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.stringstreams">No <code class="code">basic_stringbuf</code>, <code class="code">basic_stringstream</code></a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.wchar">Little or no wide character support</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.iostream_templates">No templatized iostreams</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.second.thread_safety">Thread safety issues</a></span></dt></dl></dd><dt><span class="section"><a href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO headers removed</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.nocreate_noreplace">No <code class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a href="backwards.html#backwards.third.support_cxx98">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0258r2.html" target="_top">
P0258R2
</a>
- </td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_has_unique_object_representations >= 201606 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> Ordered by default </td><td align="left">
- <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0181r1.html" target="_top">
- P0181R1
- </a>
- </td><td align="center"> No </td><td align="left"><code class="code"> __cpp_lib_default_order >= 201606</code></td></tr><tr><td align="left"> Polishing <code class="code"><chrono></code> </td><td align="left">
+ </td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_has_unique_object_representations >= 201606 </code></td></tr><tr><td align="left"> Polishing <code class="code"><chrono></code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0092r1.html" target="_top">
P0092R1
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0156r2.html" target="_top">
P0156R2
</a>
- </td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_scoped_lock >= 201703 </code></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="table.cxx1z_ts_status"></a><p class="title"><strong>Table 1.6. C++ Technical Specifications Implementation Status</strong></p><div class="table-contents"><table summary="C++ Technical Specifications Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
+ </td><td align="center"> 7 </td><td align="left"><code class="code"> __cpp_lib_scoped_lock >= 201703 </code></td></tr><tr bgcolor="#C8B0B0"><td align="left"> </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0298r3.pdf" target="_top">
+ P0298R3
+ </a>
+ </td><td align="center"> 7 </td><td align="left"><code class="code"> ??? </code></td></tr></tbody></table></div></div><br class="table-break" /><div class="table"><a id="table.cxx1z_ts_status"></a><p class="title"><strong>Table 1.6. C++ Technical Specifications Implementation Status</strong></p><div class="table-contents"><table summary="C++ Technical Specifications Implementation Status" border="1"><colgroup><col align="left" class="c1" /><col align="left" class="c2" /><col align="left" class="c3" /><col align="left" class="c4" /></colgroup><thead><tr><th align="left">Paper</th><th align="left">Title</th><th align="left">Status</th><th align="left">Comments</th></tr></thead><tbody><tr><td align="left">
<a class="link" href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n4076.html" target="_top">
N4076
</a>
return 0;
}
</pre><p>Try it yourself! More examples can be found in 3.1.x code, in
- <code class="filename">include/ext/*_filebuf.h</code>, and in this article by James Kanze:
- <a class="link" href="http://kanze.james.neuf.fr/articles/fltrsbf1.html" target="_top">Filtering
- Streambufs</a>.
+ <code class="filename">include/ext/*_filebuf.h</code>, and in the article
+ <a class="link" href="http://gabisoft.free.fr/articles/fltrsbf1.html" target="_top">Filtering
+ Streambufs</a>
+ by James Kanze.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="io.streambuf.buffering"></a>Buffering</h3></div></div></div><p>First, are you sure that you understand buffering? Particularly
the fact that C++ may not, in fact, have anything to do with it?
</p><p>The rules for buffering can be a little odd, but they aren't any
}
</pre><p>For further details of the C++11 memory model see Hans-J. Boehm's
<a class="link" href="https://www.hboehm.info/c++mm/" target="_top">Threads
- and memory model for C++</a> pages, particularly the <a class="link" href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html" target="_top">introduction</a>
+ and memory model for C++</a> pages, particularly the <a class="link" href="http://www.hboehm.info/c++mm/threadsintro.html" target="_top">introduction</a>
and <a class="link" href="https://www.hboehm.info/c++mm/user-faq.html" target="_top">FAQ</a>.
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.atomics"></a>Atomics</h3></div></div></div><p>
</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.intro.using.concurrency.io"></a>IO</h3></div></div></div><p>This gets a bit tricky. Please read carefully, and bear with me.
</question>
<answer xml:id="a-get_iso_cxx">
<para>
- Please refer to the Contributing section in our manual.
+ Please refer to the <link linkend="appendix.contrib">Contributing</link>
+ section in our manual.
</para>
</answer>
</qandaentry>
<para>Portability notes and known implementation limitations are as follows.</para>
-<section xml:id="backwards.third.headers"><info><title>Pre-ISO headers moved to backwards or removed</title></info>
+<section xml:id="backwards.third.headers"><info><title>Pre-ISO headers removed</title></info>
<para> The pre-ISO C++ headers
(<filename class="headerfile"><iostream.h></filename>,
<filename class="headerfile"><defalloc.h></filename> etc.) are
- available, unlike previous libstdc++ versions, but inclusion
- generates a warning that you are using deprecated headers.
+ not supported.
</para>
- <para>This compatibility layer is constructed by including the
- standard C++ headers, and injecting any items in
- <code>std::</code> into the global namespace.
- </para>
- <para>For those of you new to ISO C++ (welcome, time travelers!), no,
- that isn't a typo. Yes, the headers really have new names.
- Marshall Cline's C++ FAQ Lite has a good explanation in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.parashift.com/c++-faq-lite/std-headers.html">What's
+ <para>For those of you new to ISO C++ (welcome, time travelers!), the
+ ancient pre-ISO headers have new names.
+ The C++ FAQ has a good explanation in <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://isocpp.org/wiki/faq/coding-standards#std-headers">What's
the difference between <xxx> and <xxx.h> headers?</link>.
</para>
-<para> Some include adjustment may be required. What follows is an
-autoconf test that defines <code>PRE_STDCXX_HEADERS</code> when they
-exist.</para>
-
-<programlisting>
-# AC_HEADER_PRE_STDCXX
-AC_DEFUN([AC_HEADER_PRE_STDCXX], [
- AC_CACHE_CHECK(for pre-ISO C++ include files,
- ac_cv_cxx_pre_stdcxx,
- [AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Wno-deprecated"
-
- # Omit defalloc.h, as compilation with newer compilers is problematic.
- AC_TRY_COMPILE([
- #include <new.h>
- #include <iterator.h>
- #include <alloc.h>
- #include <set.h>
- #include <hashtable.h>
- #include <hash_set.h>
- #include <fstream.h>
- #include <tempbuf.h>
- #include <istream.h>
- #include <bvector.h>
- #include <stack.h>
- #include <rope.h>
- #include <complex.h>
- #include <ostream.h>
- #include <heap.h>
- #include <iostream.h>
- #include <function.h>
- #include <multimap.h>
- #include <pair.h>
- #include <stream.h>
- #include <iomanip.h>
- #include <slist.h>
- #include <tree.h>
- #include <vector.h>
- #include <deque.h>
- #include <multiset.h>
- #include <list.h>
- #include <map.h>
- #include <algobase.h>
- #include <hash_map.h>
- #include <algo.h>
- #include <queue.h>
- #include <streambuf.h>
- ],,
- ac_cv_cxx_pre_stdcxx=yes, ac_cv_cxx_pre_stdcxx=no)
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
- ])
- if test "$ac_cv_cxx_pre_stdcxx" = yes; then
- AC_DEFINE(PRE_STDCXX_HEADERS,,[Define if pre-ISO C++ header files are present. ])
- fi
-])
-</programlisting>
-
<para>Porting between pre-ISO headers and ISO headers is simple: headers
like <filename class="headerfile"><vector.h></filename> can be replaced with <filename class="headerfile"><vector></filename> and a using
directive <code>using namespace std;</code> can be put at the global
}
</programlisting>
<para>Try it yourself! More examples can be found in 3.1.x code, in
- <filename>include/ext/*_filebuf.h</filename>, and in this article by James Kanze:
- <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://kanze.james.neuf.fr/articles/fltrsbf1.html">Filtering
- Streambufs</link>.
+ <filename>include/ext/*_filebuf.h</filename>, and in the article
+ <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://gabisoft.free.fr/articles/fltrsbf1.html">Filtering
+ Streambufs</link>
+ by James Kanze.
</para>
</section>
<para>For further details of the C++11 memory model see Hans-J. Boehm's
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.hboehm.info/c++mm/">Threads
- and memory model for C++</link> pages, particularly the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.hpl.hp.com/personal/Hans_Boehm/c++mm/threadsintro.html">introduction</link>
+ and memory model for C++</link> pages, particularly the <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.hboehm.info/c++mm/threadsintro.html">introduction</link>
and <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.hboehm.info/c++mm/user-faq.html">FAQ</link>.
</para>