</em></span>
</span></dt><dd><p>Avoid using <code class="code">dynamic_cast</code> when it would be
ill-formed.
+ </p></dd><dt><a id="manual.bugs.dr2537"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2537" target="_top">2537</a>:
+ <span class="emphasis"><em>Requirements on the first template parameter of container adaptors
+ </em></span>
+ </span></dt><dd><p>Add static assertions to enforce the requirement.
+ </p></dd><dt><a id="manual.bugs.dr2566"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2566" target="_top">2566</a>:
+ <span class="emphasis"><em>Constructors for <code class="code">priority_queue</code> taking allocators
+ should call <code class="code">make_heap</code>
+ </em></span>
+ </span></dt><dd><p>Call <code class="code">make_heap</code>.
</p></dd><dt><a id="manual.bugs.dr2583"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2583" target="_top">2583</a>:
<span class="emphasis"><em>There is no way to supply an allocator for <code class="code">basic_string(str, pos)</code>
</em></span>
- </span></dt><dd><p>Add new constructor
+ </span></dt><dd><p>Add new constructor.
+ </p></dd><dt><a id="manual.bugs.dr2586"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2586" target="_top">2586</a>:
+ <span class="emphasis"><em>Wrong value category used in <code class="code">scoped_allocator_adaptor::construct()</code>
+ </em></span>
+ </span></dt><dd><p>Change internal helper for uses-allocator construction
+ to always check using const lvalue allocators.
</p></dd><dt><a id="manual.bugs.dr2684"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2684" target="_top">2684</a>:
<span class="emphasis"><em><code class="code">priority_queue</code> lacking comparator typedef
</em></span>
</span></dt><dd><p>Define the <code class="code">value_compare</code> typedef.
+ </p></dd><dt><a id="manual.bugs.dr2735"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2735" target="_top">2735</a>:
+ <span class="emphasis"><em><code class="code">std::abs(short)</code>,
+ <code class="code">std::abs(signed char)</code> and others should return
+ <code class="code">int</code> instead of <code class="code">double</code> in order to be
+ compatible with C++98 and C
+ </em></span>
+ </span></dt><dd><p>Resolved by the changes for
+ <a class="link" href="bugs.html#manual.bugs.dr2192">2192</a>.
</p></dd><dt><a id="manual.bugs.dr2770"></a><span class="term"><a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2770" target="_top">2770</a>:
<span class="emphasis"><em><code class="code">tuple_size<const T></code> specialization is not
SFINAE compatible and breaks decomposition declarations
<a class="link" href="http://www.open-std.org/JTC1/sc22/WG21/docs/papers/2014/n4259.pdf" target="_top">
N4259
</a>
- </td><td align="center">6.1</td><td align="left"><code class="code">__cpp_lib_uncaught_exceptions >= 201411</code></td></tr><tr><td align="left"> Variant: a type-safe union for C++17 </td><td align="left">
+ </td><td align="center">6.1</td><td align="left"><code class="code">__cpp_lib_uncaught_exceptions >= 201411</code></td></tr><tr><td align="left"> C++17 should refer to C11 instead of C99 </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html" target="_top">
+ P0063R3
+ </a>
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> Variant: a type-safe union for C++17 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0088r3.html" target="_top">
P0088R3
</a>
P0067R5
</a>
</td><td align="center"> 8.1 (only integral types supported) </td><td align="left"><code class="code"> __has_include(<charconv>) </code>
- <code class="code"> __cpp_lib_to_chars >= 201611 </code></td></tr></tbody></table></div></div><br class="table-break" /><p>
+ <code class="code"> __cpp_lib_to_chars >= 201611 </code></td></tr><tr><td align="left"> Homogeneous interface for variant, any and optional </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0032r3.pdf" target="_top">
+ P0032R3
+ </a>
+ </td><td align="center"> 7.1 </td><td align="left">
+ <code class="code"> __cpp_lib_any >= 201606 </code>,
+ <code class="code"> __cpp_lib_optional >= 201606 </code>,
+ <code class="code"> __cpp_lib_variant >= 201606 </code>
+ </td></tr><tr><td align="left"> Making Optional Greater Equal Again </td><td align="left">
+ <a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0307r2.pdf" target="_top">
+ P0307R2
+ </a>
+ </td><td align="center"> 7.1 </td><td align="left"> <code class="code"> __cpp_lib_optional >= 201606 </code> </td></tr></tbody></table></div></div><br class="table-break" /><p>
Note 1: This feature is supported in GCC 7.1 and 7.2 but before GCC 7.3 the
<code class="code">__cpp_lib</code> macro is not defined, and compilation will fail if the
header is included without using <code class="option">-std</code> to enable C++17 support.
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0550r2.pdf" target="_top">
P0550R2
</a>
- </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> <code class="code">nodiscard</code> in the Library </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr><td align="left"> <code class="code">nodiscard</code> in the Library </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0600r1.pdf" target="_top">
P0600R1
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> de-pessimize legacy algorithms with <code class="code">std::move</code> </td><td align="left">
+ </td><td align="center"> 9.1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> de-pessimize legacy algorithms with <code class="code">std::move</code> </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0616r0.pdf" target="_top">
P0616R0
</a>
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1085r2.md" target="_top">
P1085R2
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
+ </td><td align="center"> </td><td align="left"> </td></tr><tr><td align="left"> Editorial Guidance for merging P0019r8 and P0528r3 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1123r0.html" target="_top">
P1123R0
</a>
- </td><td align="center"> </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
+ </td><td align="center"> Note 1 </td><td align="left"> </td></tr><tr bgcolor="#C8B0B0"><td align="left"> Cleaning up Clause 20 </td><td align="left">
<a class="link" href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1148r0.pdf" target="_top">
P1148R0
</a>