This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch] Document resolved DRs in libstdc++ manual
- From: Jonathan Wakely <jwakely at redhat dot com>
- To: libstdc++ at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Tue, 2 Jun 2015 12:08:40 +0100
- Subject: [patch] Document resolved DRs in libstdc++ manual
- Authentication-results: sourceware.org; auth=none
This replaces our local copies of the LWG issues lists with the latest
revisions (from http://www.open-std.org/jtc1/sc22/wg21/docs/lwg93.zip)
and updates
https://gcc.gnu.org/onlinedocs/libstdc++/manual/bugs.html#manual.intro.status.bugs.iso
to document some of the DRs we've implemented in the last few years.
Committed to trunk.
commit 2861a8c80a4b06c95296328d5d6ae10147565bb1
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Fri May 29 16:09:05 2015 +0100
* doc/html/ext/lwg-active.html: Update to R93.
* doc/html/ext/lwg-closed.html: Likewise.
* doc/html/ext/lwg-defects.html: Likewise.
* doc/html/manual/*: Regenerate.
* doc/xml/manual/intro.xml: Document status of several DRs.
diff --git a/libstdc++-v3/doc/xml/manual/intro.xml b/libstdc++-v3/doc/xml/manual/intro.xml
index f0c66a2..e6039eb 100644
--- a/libstdc++-v3/doc/xml/manual/intro.xml
+++ b/libstdc++-v3/doc/xml/manual/intro.xml
@@ -644,6 +644,12 @@ requirements of the license of GCC.
<listitem><para>Implement the resolution, basically cast less.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#445">445</link>:
+ <emphasis>iterator_traits::reference unspecified for some iterator categories</emphasis>
+ </term>
+ <listitem><para>Change <code>istreambuf_iterator::reference</code> in C++11 mode.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#453">453</link>:
<emphasis>basic_stringbuf::seekoff need not always fail for an empty stream</emphasis>
</term>
@@ -663,6 +669,12 @@ requirements of the license of GCC.
<code>at(const key_type&)</code> to <code>std::map</code>.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#467">467</link>:
+ <emphasis>char_traits::lt(), compare(), and memcmp()</emphasis>
+ </term>
+ <listitem><para>Change <code>lt</code>.
+ </para></listitem></varlistentry>
+
<varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#508">508</link>:
<emphasis>Bad parameters for ranlux64_base_01</emphasis>
</term>
@@ -820,6 +832,182 @@ requirements of the license of GCC.
<listitem><para>Correctly decay types in signature of <code>std::async</code>.
</para></listitem></varlistentry>
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2049">2049</link>:
+ <emphasis><code>is_destructible</code> underspecified</emphasis>
+ </term>
+ <listitem><para>Handle non-object types.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2056">2056</link>:
+ <emphasis>future_errc enums start with value 0 (invalid value for broken_promise)</emphasis>
+ </term>
+ <listitem><para>Reorder enumerators.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2059">2059</link>:
+ <emphasis>C++0x ambiguity problem with map::erase</emphasis>
+ </term>
+ <listitem><para>Add additional overloads.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2067">2067</link>:
+ <emphasis>packaged_task should have deleted copy c'tor with const parameter</emphasis>
+ </term>
+ <listitem><para>Fix signatures.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2101">2101</link>:
+ <emphasis>Some transformation types can produce impossible types</emphasis>
+ </term>
+ <listitem><para>Use the referenceable type concept.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2106">2106</link>:
+ <emphasis>move_iterator wrapping iterators returning prvalues</emphasis>
+ </term>
+ <listitem><para>Change the <code>reference</code> type.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2118">2118</link>:
+ <emphasis><code>unique_ptr</code> for array does not support cv qualification conversion of actual argument</emphasis>
+ </term>
+ <listitem><para>Adjust constraints to allow safe conversions.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2132">2132</link>:
+ <emphasis><code>std::function</code> ambiguity</emphasis>
+ </term>
+ <listitem><para>Constrain the constructor to only accept callable types.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2141">2141</link>:
+ <emphasis><code>common_type</code> trait produces reference types</emphasis>
+ </term>
+ <listitem><para>Use <code>decay</code> for the result type.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2144">2144</link>:
+ <emphasis>Missing <code>noexcept</code> specification in <code>type_index</code></emphasis>
+ </term>
+ <listitem><para>Add <code>noexcept</code>
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2145">2145</link>:
+ <emphasis><code>error_category</code> default constructor</emphasis>
+ </term>
+ <listitem><para>Declare a public constexpr constructor.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2162">2162</link>:
+ <emphasis><code>allocator_traits::max_size</code> missing <code>noexcept</code></emphasis>
+ </term>
+ <listitem><para>Add <code>noexcept</code>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2187">2187</link>:
+ <emphasis><code>vector<bool></code> is missing <code>emplace</code> and <code>emplace_back</code> member functions</emphasis>
+ </term>
+ <listitem><para>Add <code>emplace</code> and <code>emplace_back</code> member functions.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2196">2196</link>:
+ <emphasis>Specification of <code>is_*[copy/move]_[constructible/assignable]</code> unclear for non-referencable types</emphasis>
+ </term>
+ <listitem><para>Use the referenceable type concept.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2313">2313</link>:
+ <emphasis><code>tuple_size</code> should always derive from <code>integral_constant<size_t, N></code></emphasis>
+ </term>
+ <listitem><para>Update definitions of the partial specializations for const and volatile types.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2329">2329</link>:
+ <emphasis><code>regex_match()/regex_search()</code> with <code>match_results</code> should forbid temporary strings</emphasis>
+ </term>
+ <listitem><para>Add deleted overloads for rvalue strings.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2332">2332</link>:
+ <emphasis><code>regex_iterator/regex_token_iterator</code> should forbid temporary regexes</emphasis>
+ </term>
+ <listitem><para>Add deleted constructors.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2399">2399</link>:
+ <emphasis><code>shared_ptr</code>'s constructor from <code>unique_ptr</code> should be constrained</emphasis>
+ </term>
+ <listitem><para>Constrain the constructor to require convertibility.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2400">2400</link>:
+ <emphasis><code>shared_ptr</code>'s <code>get_deleter()</code> should use <code>addressof()</code></emphasis>
+ </term>
+ <listitem><para>Use <code>addressof</code>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2401">2401</link>:
+ <emphasis><code>std::function</code> needs more <code>noexcept</code></emphasis>
+ </term>
+ <listitem><para>Add <code>noexcept</code> to the assignment and comparisons.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2407">2407</link>:
+ <emphasis><code>packaged_task(allocator_arg_t, const Allocator&, F&&)</code>
+ should neither be constrained nor <code>explicit</code>
+ </emphasis>
+ </term>
+ <listitem><para>Remove <code>explicit</code> from the constructor.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2415">2415</link>:
+ <emphasis>Inconsistency between <code>unique_ptr</code> and <code>shared_ptr</code></emphasis>
+ </term>
+ <listitem><para>Create empty an <code>shared_ptr</code> from an empty
+ <code>unique_ptr</code>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2418">2418</link>:
+ <emphasis><code>apply</code> does not work with member pointers</emphasis>
+ </term>
+ <listitem><para>Use <code>mem_fn</code> for member pointers.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2440">2440</link>:
+ <emphasis><code>seed_seq::size()</code> should be <code>noexcept</code></emphasis>
+ </term>
+ <listitem><para>Add <code>noexcept</code>.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2454">2454</link>:
+ <emphasis>Add <code>raw_storage_iterator::base()</code> member
+ </emphasis>
+ </term>
+ <listitem><para>Add the <code>base()</code> member function.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2455">2455</link>:
+ <emphasis>Allocator default construction should be allowed to throw
+ </emphasis>
+ </term>
+ <listitem><para>Make <code>noexcept</code> specifications conditional.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2459">2459</link>:
+ <emphasis><code>std::polar</code> should require a non-negative rho
+ </emphasis>
+ </term>
+ <listitem><para>Add debug mode assertion.
+ </para></listitem></varlistentry>
+
+ <varlistentry><term><link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="../ext/lwg-defects.html#2466">2466</link>:
+ <emphasis><code>allocator_traits::max_size()</code> default behavior is incorrect
+ </emphasis>
+ </term>
+ <listitem><para>Divide by the object type.
+ </para></listitem></varlistentry>
+
+
</variablelist>
</section>