This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR bootstrap/51705


On Fri, 30 Dec 2011, Steve Kargl wrote:

> I'm sorry, but I find "clang did this, so g++ better follow
> suit" to be a rather uncompelling technical reason for 
> defining __cplusplus to be 201103L [1].  The technical question
> is fairly simple: "Does g++ conform to the C++11 standard?"

I think this is just the same issue as where trouble.texi says:

    Sometimes people say that defining @code{__STDC__} in a compiler that
    does not completely conform to the ISO C standard somehow violates the
    standard.  This is illogical.  The standard is a standard for compilers
    that claim to support ISO C, such as @samp{gcc -ansi}---not for other
    compilers such as plain @command{gcc}.  Whatever the ISO C standard says
    is relevant to the design of plain @command{gcc} without @option{-ansi} only
    for pragmatic reasons, not as a requirement.

Note that -std=c++11 is documented to be incomplete, not to claim to 
support the full standard.  I think the most pragmatically useful value of 
__cplusplus is to reflect the intent - the C++ version followed insofar as 
differences between versions are implemented - and this does not mean the 
support is complete, just as __STDC_VERSION__ had the C99 value with 
-std=c99 even in versions predating the implementation of C99 inline 
semantics (for example).

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]