This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[wwwdocs] Document C++ news in GCC 10 Release Notes
- From: Marek Polacek <polacek at redhat dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: Jonathan Wakely <jwakely at redhat dot com>, Jason Merrill <jason at redhat dot com>
- Date: Mon, 19 Aug 2019 11:57:44 -0400
- Subject: [wwwdocs] Document C++ news in GCC 10 Release Notes
I'm of the mind that we should advertise some of the new cool
C++ changes going into GCC 10, esp. those that are user-visible.
Checking this in.
Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-10/changes.html,v
retrieving revision 1.8
diff -u -r1.8 changes.html
--- changes.html 19 Aug 2019 14:08:10 -0000 1.8
+++ changes.html 19 Aug 2019 15:53:27 -0000
@@ -48,10 +48,46 @@
<h3 id="cxx">C++</h3>
<ul>
+ <li>Several C++20 features have been implemented:
+ <ul>
+ <li>P1668R1, Permitting Unevaluated inline-assembly in constexpr Functions</li>
+ <li>P1161R3, Deprecate <code>a[b,c]</code></li>
+ <li>P0848R3, Conditionally Trivial Special Member Functions</li>
+ <li>P1091R3, Extending structured bindings</li>
+ </ul>
+ </li>
+ <li>Several C++ Defect Reports have been resolved, e.g.:
+ <ul>
+ <li>DR 1560 (lvalue-to-rvalue conversion in <code>?:</code>),</li>
+ <li>DR 1813 (<code>__is_standard_layout</code> for a class with repeated
+ bases),</li>
+ <li>DR 2094 (volatile scalars are trivially copyable),</li>
+ <li>DR 2096 (constraints on literal unions),</li>
+ <li>DR 2413 (<code>typename</code> in <code> conversion-function-id</code>s).
+ </li>
+ </ul>
+ </li>
<li>
G++ can now detect modifying constant objects in constexpr evaluation
(which is undefined behavior).
</li>
+ <li>
+ G++ no longer emits bogus <code>-Wsign-conversion</code> warnings with explicit
+ casts.
+ </li>
+ <li>
+ Narrowing is now detected in more contexts (e.g., <code>case</code>
+ values).
+ </li>
+ <li>
+ Memory consumption of the compiler has been reduced in constexpr evaluation.
+ </li>
+ <li>
+ The <code>noexcept-specifier</code> is now properly treated as a
+ <em>complete-class context</em> as per
+ <a href="http://eel.is/c++draft/class.mem#def:complete-class_context">
+ [class.mem]</a>.
+ </li>
</ul>
<!-- <h4 id="libstdcxx">Runtime Library (libstdc++)</h4> -->