libstdc++: Document libstdc++exp.a library for -fcontracts

libstdc++-v3/ChangeLog:

	* doc/xml/manual/using.xml: Document libstdc++exp.a library.
	* doc/html/*: Regenerate.
This commit is contained in:
Jonathan Wakely 2023-04-12 23:23:47 +01:00
parent 25264f6b3a
commit adda0e2887
3 changed files with 39 additions and 8 deletions

View file

@ -31,6 +31,9 @@
</td></tr><tr><td align="left"><code class="literal">-lstdc++fs</code></td><td align="left">Linking to <code class="filename">libstdc++fs</code>
is required for use of the Filesystem library extensions in
<code class="filename">&lt;experimental/filesystem&gt;</code>.
</td></tr><tr><td align="left"><code class="literal">-lstdc++exp</code></td><td align="left">Linking to <code class="filename">libstdc++exp</code>
is required for use of the C++ Contracts extensions enabled by
<code class="literal">-fcontracts</code>.
</td></tr><tr><td align="left"><code class="literal">-lstdc++_libbacktrace</code></td><td align="left">Until C++23 support is non-experimental, linking to
<code class="filename">libstdc++_libbacktrace.a</code>
is required for use of the C++23 type

View file

@ -136,12 +136,21 @@ A quick read of the relevant part of the GCC
no shared library for it. To use the library you should include
<code class="filename">&lt;experimental/filesystem&gt;</code>
and link with <code class="option">-lstdc++fs</code>. The library implementation
is incomplete on non-POSIX platforms, specifically Windows support is
rudimentary.
is incomplete on non-POSIX platforms, specifically Windows is only
partially supported.
</p><p>
Due to the experimental nature of the Filesystem library the usual
GCC 13 includes an implementation of the C++ Contracts library defined by
<a class="link" href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1429r3.pdf" target="_top">P1429R3</a>.
Because this is an experimental extension, not part of the C++ standard,
it is implemented in a separate library,
<code class="filename">libstdc++exp.a</code>, and there is
no shared library for it. To use the library you should include
<code class="filename">&lt;experimental/contract&gt;</code>
and link with <code class="option">-lstdc++exp</code>.
</p><p>
Due to the experimental nature of these libraries the usual
guarantees about ABI stability and backwards compatibility do not apply
to it. There is no guarantee that the components in any
to them. There is no guarantee that the components in any
<code class="filename">&lt;experimental/xxx&gt;</code>
header will remain compatible between different GCC releases.
</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using_namespaces.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="using.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using_concurrency.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Namespaces </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Concurrency</td></tr></table></div></body></html>

View file

@ -108,6 +108,14 @@
</entry>
</row>
<row>
<entry><literal>-lstdc++exp</literal></entry>
<entry>Linking to <filename class="libraryfile">libstdc++exp</filename>
is required for use of the C++ Contracts extensions enabled by
<literal>-fcontracts</literal>.
</entry>
</row>
<row>
<entry><literal>-lstdc++_libbacktrace</literal></entry>
<entry>Until C++23 support is non-experimental, linking to
@ -1700,14 +1708,25 @@ A quick read of the relevant part of the GCC
no shared library for it. To use the library you should include
<filename class="headerfile">&lt;experimental/filesystem&gt;</filename>
and link with <option>-lstdc++fs</option>. The library implementation
is incomplete on non-POSIX platforms, specifically Windows support is
rudimentary.
is incomplete on non-POSIX platforms, specifically Windows is only
partially supported.
</para>
<para>
Due to the experimental nature of the Filesystem library the usual
GCC 13 includes an implementation of the C++ Contracts library defined by
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1429r3.pdf">P1429R3</link>.
Because this is an experimental extension, not part of the C++ standard,
it is implemented in a separate library,
<filename class="libraryfile">libstdc++exp.a</filename>, and there is
no shared library for it. To use the library you should include
<filename class="headerfile">&lt;experimental/contract&gt;</filename>
and link with <option>-lstdc++exp</option>.
</para>
<para>
Due to the experimental nature of these libraries the usual
guarantees about ABI stability and backwards compatibility do not apply
to it. There is no guarantee that the components in any
to them. There is no guarantee that the components in any
<filename class="headerfile">&lt;experimental/xxx&gt;</filename>
header will remain compatible between different GCC releases.
</para>