libstdc++: Document remaining C++17 implementation-defined behavior.

This also covers bad_function_call::what from C++11.

libstdc++-v3/ChangeLog:

	* doc/html/manual/status.html: Regenerate.
	* doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call.
	* doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast
	and nullptr_t output. Update entry for sf.cmath. Fix stable name for
	mem.res.

Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Signed-off-by: Tomasz Kamiński <tkaminsk@redhat.com>
This commit is contained in:
Tomasz Kamiński 2025-09-05 16:08:12 +02:00
parent 052c1d8284
commit 39d7c4d42a
3 changed files with 34 additions and 8 deletions

View File

@ -259,6 +259,9 @@ mainline GCC, not in any particular release.
</p><p>
<span class="emphasis"><em>20.7.2.0 [util.smartptr.weakptr]</em></span>
<code class="code">what()</code> returns <code class="literal">"bad_weak_ptr"</code>.
</p><p>
<span class="emphasis"><em>20.8.11.1 [func.wrap.badcall]</em></span>
<code class="code">what()</code> returns <code class="literal">"bad_function_call"</code>.
</p><p>
<span class="emphasis"><em>20.8.9.1.3 [func.bind.place]/1</em></span> There are 29
placeholders defined and the placeholder types are
@ -1074,7 +1077,11 @@ since C++14 and the implementation is complete.
<code class="literal">"std::visit: variant is valueless"</code>,
or <code class="literal">"std::visit&lt;R&gt;: variant is valueless"</code>.
</p><p>
<span class="emphasis"><em>23.12.5.2 [memory.resource.pool.options]</em></span>
<span class="emphasis"><em>23.8.2 [any.bad_any_cast]</em></span>
<code class="code">what()</code> returns <code class="literal">"bad any_cast"</code>.
</p><p>
<span class="emphasis"><em>23.12.5 [mem.res.pool.options]</em></span>,
<span class="emphasis"><em>23.12.5 [mem.res.pool.mem]</em></span>
Let S equal <code class="code">numeric_limits&lt;size_t&gt;::digits</code>.
The limit for maximum number of blocks in a chunk is given by
<span class="mathphrase">2<sup>N</sup>-1</span>,
@ -1085,7 +1092,7 @@ since C++14 and the implementation is complete.
otherwise 3072 when <span class="mathphrase">S &gt; 16</span>,
otherwise 768.
</p><p>
<span class="emphasis"><em>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</em></span>
<span class="emphasis"><em>23.12.6.1 [mem.res.monotonic.buffer.ctor]</em></span>
The default <code class="code">next_buffer_size</code> is <code class="code">128 * sizeof(void*)</code>.
The default growth factor is <code class="code">1.5</code>.
</p><p>
@ -1120,8 +1127,11 @@ since C++14 and the implementation is complete.
races depends on the target C library that provides the function.
</p><p>
<span class="emphasis"><em>29.9.5 [sf.cmath]</em></span>
The effect of calling the mathematical special functions with large
inputs should be documented here.
Calling the mathematical special functions with large inputs is supported
but the results may be imprecise.
</p><p>
<span class="emphasis"><em>30.7.5.2.3 [ostream.inserters]</em></span>
NTCTS for <code class="code">nullptr_t</code> is <code class="literal">"nullptr"</code>.
</p><p>
<span class="emphasis"><em>30.10.2.1 [fs.conform.9945]</em></span>,
<span class="emphasis"><em>30.10.2.2 [fs.conform.os]</em></span>

View File

@ -2613,6 +2613,11 @@ mainline GCC, not in any particular release.
<code>what()</code> returns <literal>"bad_weak_ptr"</literal>.
</para>
<para>
<emphasis>20.8.11.1 [func.wrap.badcall]</emphasis>
<code>what()</code> returns <literal>"bad_function_call"</literal>.
</para>
<para>
<emphasis>20.8.9.1.3 [func.bind.place]/1</emphasis> There are 29
placeholders defined and the placeholder types are

View File

@ -2935,7 +2935,13 @@ since C++14 and the implementation is complete.
</para>
<para>
<emphasis>23.12.5.2 [memory.resource.pool.options]</emphasis>
<emphasis>23.8.2 [any.bad_any_cast]</emphasis>
<code>what()</code> returns <literal>"bad any_cast"</literal>.
</para>
<para>
<emphasis>23.12.5 [mem.res.pool.options]</emphasis>,
<emphasis>23.12.5 [mem.res.pool.mem]</emphasis>
Let S equal <code>numeric_limits&lt;size_t&gt;::digits</code>.
The limit for maximum number of blocks in a chunk is given by
<inlineequation><mathphrase>2<superscript>N</superscript>-1</mathphrase></inlineequation>,
@ -2948,7 +2954,7 @@ since C++14 and the implementation is complete.
</para>
<para>
<emphasis>23.12.6.1 [memory.resource.monotonic.buffer.ctor]</emphasis>
<emphasis>23.12.6.1 [mem.res.monotonic.buffer.ctor]</emphasis>
The default <code>next_buffer_size</code> is <code>128 * sizeof(void*)</code>.
The default growth factor is <code>1.5</code>.
</para>
@ -2998,8 +3004,13 @@ since C++14 and the implementation is complete.
<para>
<emphasis>29.9.5 [sf.cmath]</emphasis>
The effect of calling the mathematical special functions with large
inputs should be documented here.
Calling the mathematical special functions with large inputs is supported
but the results may be imprecise.
</para>
<para>
<emphasis>30.7.5.2.3 [ostream.inserters]</emphasis>
NTCTS for <code>nullptr_t</code> is <literal>"nullptr"</literal>.
</para>
<para>