This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".

The branch, master has been updated
       via  8020dedb7fb9d2fe209dbcfb377d7432fcc5dd3a (commit)
      from  d2fe10e1c1ea81e3c2c6c7ce96301d6b21c924a9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8020dedb7fb9d2fe209dbcfb377d7432fcc5dd3a
Author: Nathan Myers <[email protected]>
Date:   Mon Apr 27 00:31:43 2026 -0400

    gcc-16/porting-to, more libstdc++.

diff --git a/htdocs/gcc-16/porting_to.html b/htdocs/gcc-16/porting_to.html
index 9946d7e8..f2f2d124 100644
--- a/htdocs/gcc-16/porting_to.html
+++ b/htdocs/gcc-16/porting_to.html
@@ -85,7 +85,7 @@ casting to <code>(void)</code>, or lowering the level of the 
warning.  See
 <p>
 Note that all GCC releases make <a href="https://gcc.gnu.org/bugs/#upgrading";
 >improvements to conformance</a> which may reject non-conforming, legacy
-codebases. 
+codebases.
 Other issues arise from C++20 becoming the default choice of published
 Standard to follow (as might have been overridden with, e.g.,
 <code>-std=c++20</code>), and changes in C++20 from previous Standards.
@@ -107,6 +107,14 @@ Failures encountered when using Gcc-16 to rebuild numerous 
open-source
 packages included the following:
 </p>
 
+<h4 id="wrong-standard">Library uses features from newer Standard</h4>
+
+<p>
+Many failures are caused by using a build option like '<code>-std=c++11</code>
+where the code turns out to depend on features from a later Standard, such as 
when
+building with a new version of a library that has begun using such features.
+</p>
+
 <h4 id="changes-to-str-literals">Changes to character literals</h4>
 
 <p>
@@ -131,11 +139,11 @@ overrun and leaves any extra characters unread, or to 
read into an
 <code>std::string</code>, which grows as needed.
 </p>
 
-<h4 id="expected-identifier-before-concept">Expected identifier before 
<code>concept</code></h4>
+<h4 id="expected-identifier-before">Expected identifier before</h4>
 
 <p>
-In C++20, '<code>concept</code>' is a keyword, so cannot be used as
-an identifier:
+C++20 defines new keywords such as '<code>concept</code>' and 
'<code>requires</code>',
+which can no longer be used as identifiers:
 </p><p><code> error: expected identifier before ‘concept’
 </code></p><p>The only solution is to change the name of the identifier.
 </p>
@@ -176,8 +184,8 @@ lack of these names:
 The solution in most cases is to use the corresponding member of
 <code>std::allocator_traits</code> as instantiated on the allocator
 type, instead. Note that explicitly specializing
-<code>std::allocator_traits</code> on a custom type, though now
-undefined behavior, is not warned about.
+<code>std::allocator_traits</code> on a custom allocator type, though
+now undefined behavior, is not warned about.
 </p>
 
 <h4 id="uninitialized-variable">Uninitialized-variable warnings</h4>
@@ -194,14 +202,58 @@ value, but they may indicate a deeper problem that this 
would only mask.
 <h4 id="missing-header-includes">Missing header includes</h4>
 
 <p>
-Some programs use names without having properly #included the header
+Programs sometimes use names without having properly #included the header
 that declares them, relying instead on the name having being declared
-accidently via some other header that no longer does, resulting in
+accidently via some other header; until it no longer does, resulting in
 errors like:
-</p><p><code> error: ‘uint64_t’ was not declared in this scope 
-</code>
-</p><p>The solution is to determine the correct header that declares the name,
-and #include it. The compiler may suggest a header to include.
+</p><p><code> error: ‘uint64_t’ was not declared in this scope</code><br>
+<code>error: 'make_unique' is not a member of 'std'</code>
+</p><p>Determine the correct header that declares the name, and 
<code>#include</code>
+it. The compiler may suggest a header to include. If the needed headers are all
+included, your build might be configured to compile to an older Standard with
+(e.g.) '<code>-std=c++11</code>"; just removing that compiler option may
+suffice.
+</p>
+
+<h4 id="obsolete-function-objects"><code>unary_function</code> is not 
defined</h4>
+
+<p>
+Standard library function objects have evolved, and have left early 
experiments behind.
+All of
+<code>unary_function</code>,
+<code>binary_function</code>,
+<code>pointer_to_unary_function</code>,
+<code>pointer_to_binary_function</code>,
+<code>ptr_fun</code>,
+<code>binder1st</code>,
+<code>binder2nd</code>,
+<code>bind1st</code>,
+<code>bind2nd</code>,
+<code>binary_function</code>,
+<code>mem_fun</code>,
+<code>mem_fun_t</code>,
+<code>mem_fun1_t</code>,
+<code>const_mem_fun_ref_t</code>,
+<code>const_mem_fun1_ref_t</code>,
+<code>mem_fun_ref</code>,
+<code>mem_fun_ref_t</code>,
+<code>mem_fun1_ref_t</code>,
+<code>const_mem_fun_ref_t</code>,
+<code>const_mem_fun1_ref_t</code>,
+<code>unary_negate</code>,
+<code>binary_negate</code>,
+<code>not1</code>, and <code>not2</code>
+have been deprecated and then eliminated from C++20 or earlier Standards,
+supplanted by (a much smaller number of) modern alternatives found in
+<code>&lt;functional&gt;</code>.
+</p>
+
+<h4 id="specified-bound-overflow">specified bound 18446744073709551608 exceeds 
maximum</h4>
+
+<p>
+GCC has become better at recognizing when a value passed to an allocator could 
potentially
+exceed the maximum permitted, 0x7ff...ff, such as by rounding a passed-in size 
up to the
+usual alignment without capping the result.
 </p>
 
 <h2 id="os">Operating Systems</h2>

-----------------------------------------------------------------------

Summary of changes:
 htdocs/gcc-16/porting_to.html | 76 ++++++++++++++++++++++++++++++++++++-------
 1 file changed, 64 insertions(+), 12 deletions(-)


hooks/post-receive
-- 
gcc-wwwdocs

Reply via email to