This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [wwwdocs] Update C++ conformance status
- From: Gerald Pfeifer <gerald at pfeifer dot com>
- To: Jonathan Wakely <jwakely at redhat dot com>, Jason Merrill <jason at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, Joseph Myers <joseph at codesourcery dot com>, Sandra Loosemore <sandra at codesourcery dot com>
- Date: Sat, 21 Nov 2015 16:54:58 +0100 (CET)
- Subject: Re: [wwwdocs] Update C++ conformance status
- Authentication-results: sourceware.org; auth=none
- References: <20151006110647 dot GQ12094 at redhat dot com> <alpine dot LSU dot 2 dot 11 dot 1510061236580 dot 10259 at linux-irjp dot site> <20151121124051 dot GE11200 at redhat dot com>
On Sat, 21 Nov 2015, Jonathan Wakely wrote:
> I forgot to respond to this, and never committed the patch, sorry.
>
> I've committed the changes to htdocs/projects/cxx0x.html now, but
> not the htdocs/bugs/index.html change.
I wasn't opposed to the bugs/index.html change, mind. Only
wondering about the 3.x info.
> I agree that the 3.x info is not useful on that page. Maybe we should
> just drop the whole "Common problems when upgrading the compiler"
> section, because info on 3.x is outdated, nearly everybody understands
> that C++ compilers conform to the standard these days (even MS got in
> on that act eventually ;-) and the info about breaking the C++ ABI with
> every major release is just wrong!
Version-specific changes like the ones described here, and how to
cope with them, are usually covered in gcc-*/porting_to.html these
days, perhaps we should add pointers from bugs.html?
I agree with your thoughts and went ahead and made a first set of
changes along these lines (patch below).
Absolutely go ahead and trim (or remove) this further.
There is also a section about "C++ non-bugs" where I am not sure
the current contents still makes a lot of sense?
Gerald
Index: index.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/bugs/index.html,v
retrieving revision 1.117
diff -u -r1.117 index.html
--- index.html 8 Oct 2015 15:06:00 -0000 1.117
+++ index.html 21 Nov 2015 15:40:43 -0000
@@ -688,8 +688,7 @@
<h4>Standard conformance</h4>
<p>With each release, we try to make G++ conform closer to the <a href=
-"http://www.open-std.org/jtc1/sc22/wg21/">ISO C++ standard</a>.
-We have also implemented some of the core and library defect reports.</p>
+"http://www.open-std.org/jtc1/sc22/wg21/">ISO C++ standard</a>.</p>
<p>Non-conforming legacy code that worked with older versions of GCC may be
rejected by more recent compilers. There is no command-line switch to ensure
@@ -698,58 +697,6 @@
However, some non-conforming constructs are allowed when the command-line
option <code>-fpermissive</code> is used.</p>
-<p>Two milestones in standard conformance are GCC 3.0 (including a major
-overhaul of the standard library) and the 3.4.0 version (with its new C++
-parser).</p>
-
-<h4>New in GCC 3.0</h4>
-
-<ul>
-
-<li>The standard library is much more conformant, and uses the
-<code>std::</code> namespace (which is now a real namespace, not an
-alias for <code>::</code>).</li>
-
-<li>The standard header files for the c library don't end with
-<code>.h</code>, but begin with <code>c</code> (i.e.
-<code><cstdlib></code> rather than <code><stdlib.h></code>).
-The <code>.h</code> names are still available, but are deprecated.</li>
-
-<li><code><strstream></code> is deprecated, use
-<code><sstream></code> instead.</li>
-
-<li><code>streambuf::seekoff</code> &
-<code>streambuf::seekpos</code> are private, instead use
-<code>streambuf::pubseekoff</code> &
-<code>streambuf::pubseekpos</code> respectively.</li>
-
-<li>If <code>std::operator << (std::ostream &, long long)</code>
-doesn't exist, you need to recompile libstdc++ with
-<code>--enable-long-long</code>.</li>
-
-</ul>
-
-<p>If you get lots of errors about things like <code>cout</code> not being
-found, you've most likely forgotten to tell the compiler to look in the
-<code>std::</code> namespace. There are several ways to do this:</p>
-
-<ul>
-
-<li>Say <code>std::cout</code> at the call. This is the most explicit
-way of saying what you mean.</li>
-
-<li>Say <code>using std::cout;</code> somewhere before the call. You
-will need to do this for each function or type you wish to use from the
-standard library.</li>
-
-<li>Say <code>using namespace std;</code> somewhere before the call.
-This is the quick-but-dirty fix. This brings the <em>whole</em> of the
-<code>std::</code> namespace into scope. <em>Never</em> do this in a
-header file, as every user of your header file will be affected by this
-decision.</li>
-
-</ul>
-
<h4><a name="new34">New in GCC 3.4.0</a></h4>
<p>The new parser brings a lot of improvements, especially concerning