- std::is_integral<__int128> is true now. - Several ABI changes to C++20 features. - New C++23 and C++26 features.
Also reordered C++23 changes to come before C++26 changes. --- Pushed to wwwdocs. As soon as I pushed this I noticed an incomplete edit to a sentence that I'd rewritten. The next patch fixes that. htdocs/gcc-16/changes.html | 71 +++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 5 deletions(-) diff --git a/htdocs/gcc-16/changes.html b/htdocs/gcc-16/changes.html index 8a7b6ae9..2cfe3d1b 100644 --- a/htdocs/gcc-16/changes.html +++ b/htdocs/gcc-16/changes.html @@ -91,8 +91,65 @@ for general information.</p> <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> <ul> + <li> + For targets that support + <a href="https://gcc.gnu.org/onlinedocs/gcc/_005f_005fint128.html">128-bit + integers</a>, <code>std::is_integral<__int128></code> and similar + traits are always true. Previously this was only the case when compiling + with GNU dialects (<code>-std=gnu++17</code>, <code>-std=gnu++14</code>, + etc.) and not with strict dialects (<code>-std=c++17</code>, etc.) + </li> + <li>Improved experimental support for C++20, including: + <ul> + <li> + Working <code>std::chrono::current_zone()</code> on Windows + (thanks to Björn Schäpers). + </li> + </ul> + </li> + + <li> + There are several changes to C++20 components which are incompatible with + the experimental C++20 support in previous releases. The following C++20 + components have ABI changes in GCC 16 include the following: + <ul> + <li> + Atomic waiting/notifying functions in <code><atomic></code> and + semaphore types in <code><semaphore></code>. + Synchronization for <code><syncstream></code>. + </li> + <li> + The representation of <code>std::format</code> args and + <code>std::formatter</code> specializations. + </li> + <li> + The representation of the <code>std::partial_ordering</code> type in + <code><compare></code>. + </li> + <li> + Semantics of <code>std::variant</code> with <code>std::jthread</code>, + <code>std::stop_token</code>, and <code>std::stop_source</code> + alternatives. + </li> + <li> + Representation of some range adaptors in <code><ranges></code>. + </li> + </ul>. + This list is not necessarily complete. As with all experimental support, + programs using C++20 components should assume that those components + are not compatible between different major releases. + </li> + <li>Improved experimental support for C++23, including: + <ul> + <li><code>std::mdspan</code>, thanks to Luc Grosheintz.</li> + <li> + <code>ranges::starts_with</code> and <code>ranges::ends_with</code>. + </li> + </ul> + </li> <li>Improved experimental support for C++26, including: <ul> + <li><code>std::inplace_vector</code>.</li> <li> <code>std::copyable_function</code> and <code>std::function_ref</code>. </li> @@ -100,11 +157,15 @@ for general information.</p> <li> <code>std::owner_equal</code> for shared pointers, thanks to Paul Keir. </li> - </ul> - </li> - <li>Improved experimental support for C++23, including: - <ul> - <li><code>std::mdspan</code>, thanks to Luc Grosheintz.</li> + <li><code><debugging></code> header and contents.</li> + <li>New <code>std::stringstream</code> and <code>std::bitset</code> + member functions accepting <code>std::string_view</code> arguments, + thanks to Nathan Myers. + </li> + <li> + Padded mdspan layouts, aligned accessor, and <code>std::dims</code>, + thanks to Luc Grosheintz. + </li> </ul> </li> </ul> -- 2.51.0
