I'm adding this caveat to the gcc-10 release notes, as well as to the
libstdc++ manual.

Pushed to wwwdocs.


commit 6ffde10eba0811d1223eaba7e2a8daefe26276aa
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Nov 4 12:58:19 2020 +0000

    Document std::istreambuf_iterator change in GCC 10 [PR 92285]

diff --git a/htdocs/gcc-10/changes.html b/htdocs/gcc-10/changes.html
index 759e4fd7..d40a633c 100644
--- a/htdocs/gcc-10/changes.html
+++ b/htdocs/gcc-10/changes.html
@@ -65,6 +65,12 @@ You may also want to check out our
     Language (HSAIL) has been deprecated and will likely be removed in
     a future release.
   </li>
+  <li>
+    The type of the <code>std::iterator</code> base class of
+    <code>std::istreambuf_iterator</code> was changed in C++98 mode
+    to be consistent with C++11 and later standards.
+    See the <a href="#iterator_base">libstdc++ notes below</a> for more 
details.
+  </li>
 </ul>
 
 
@@ -504,6 +510,18 @@ int get_naïve_pi() {
   <li>
     Reduced header dependencies, leading to faster compilation for some code.
   </li>
+  <li>
+    <a id="iterator_base">The <code>std::iterator</code></a> base class of
+    <code>std::istreambuf_iterator</code> was changed in C++98 mode
+    to be consistent with C++11 and later standards.
+    This is expected to have no noticeable effect except in the unlikely case
+    of a class which has potentially overlapping subobjects of type
+    <code>std::istreambuf_iterator&lt;C&gt;</code> and another iterator type
+    with a <code>std::iterator&lt;input_iterator_tag, C, ...&gt;</code>
+    base class. The layout of such a type might change when compiled as C++98.
+    <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92285";>Bug 92285</a>
+    has more details and concrete examples.
+  </li>
 </ul>
 
 <h3 id="d">D</h3>

Reply via email to