Also add porting-to notes about tr1::bind. Pushed to wwwdocs.
commit 927e80dc01f505a625f1fcc4e1ca38aeb9f88e67 Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Dec 8 13:05:42 2020 +0000 Document libstdc++ changes in GCC 11 Also add porting-to notes about tr1::bind. diff --git a/htdocs/gcc-11/changes.html b/htdocs/gcc-11/changes.html index 4d3efed5..50e35505 100644 --- a/htdocs/gcc-11/changes.html +++ b/htdocs/gcc-11/changes.html @@ -239,7 +239,28 @@ a work-in-progress.</p> </li> </ul> -<!-- <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> --> +<h4 id="libstdcxx">Runtime Library (libstdc++)</h4> +<ul> + <li>Improved C++17 support, including: + <ul> + <li><code>std::from_chars</code> for floating-point types. + <ul> + </li> + <li>Improved experimental C++2a support, including: + <ul> + <li>Calendar additions to <code><chrono></code>.</li> + <li><code>std::bit_cast</code></li> + <li><code>std::source_location</code></li> + <li>Atomic wait and notify operations.</li> + <li><code><latch></code> and <code><semaphore></code></li> + <li><code><syncstream></code></li> + <li>Efficient access to <code>basic_stringbuf</code>'s buffer.</li> + </ul> + </li> + <li>Faster <code>std::uniform_int_distribution</code>, + thanks to Daniel Lemire. + </li> +</ul> <h3 id="fortran">Fortran</h3> diff --git a/htdocs/gcc-11/porting_to.html b/htdocs/gcc-11/porting_to.html index 41efc3b6..4187dd8e 100644 --- a/htdocs/gcc-11/porting_to.html +++ b/htdocs/gcc-11/porting_to.html @@ -114,6 +114,33 @@ be included explicitly when compiled with GCC 11: </li> </ul> +<h3 id="Old-iostream-Members">Old iostream Members</h3> +<p> +The deprecated iostream members <code>ios_base::io_state</code>, +<code>ios_base::open_mode</code>, <code>ios_base::seek_dir</code>, and +<code>basic_streambuf::stossc</code> are not available in C++17 mode. +References to those members should be replaced by <code>std::iostate</code>, +<code>std::openmode</code>, <code>std::seekdir</code>, and +<code>basic_streambuf::sbumpc</code> respectively. +</p> + +<h3 id="tr1-bind">Call of overloaded <code>'bind(...)'</code> is ambiguous</h3> +<p> +The placeholders for <code>std::tr1::bind</code> have been changed to use +the same placeholder objects as <code>std::bind</code>. This means that +following <code>using std::tr1::bind;</code> an unqualified call to +<code>bind(f, std::tr1::placeholders::_1)</code> may be ambiguous. +This happens because <code>std::tr1::bind</code> is brought into scope by +the using-declaration and <code>std::bind</code> is found by +Argument-Dependent Lookup due to the type of the <code>_1</code> placeholder. +</p> +<p> +To resolve this ambiguity replace unqualified calls to <code>bind</code> +with <code>std::tr1::bind</code> or <code>std::bind</code>. Alternatively, +change the code to not include the <code><tr1/functional></code> header, +so that only <code>std::bind</code> is declared. +</p> + <!-- <h2 id="fortran">Fortran language issues</h2> -->