[cfe-commits] r78332 - in /cfe/trunk: include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDeclCXX.cpp test/CXX/class/class.friend/p1.cpp

AlisdairM(public) public at alisdairm.net
Thu Aug 6 22:31:37 PDT 2009


> -----Original Message-----
> From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-
> bounces at cs.uiuc.edu] On Behalf Of Chris Lattner
> Sent: 07 August 2009 06:17
> To: Eli Friedman
> Cc: cfe-commits at cs.uiuc.edu
> Subject: Re: [cfe-commits] r78332 - in /cfe/trunk:
> include/clang/Basic/DiagnosticSemaKinds.td lib/Sema/SemaDeclCXX.cpp
> test/CXX/class/class.friend/p1.cpp
> 
> 
> On Aug 6, 2009, at 2:04 PM, Eli Friedman wrote:
> 
> > On Thu, Aug 6, 2009 at 1:49 PM, John McCall<rjmccall at apple.com>
> wrote:
> >> Author: rjmccall
> >> Date: Thu Aug  6 15:49:32 2009
> >> New Revision: 78332
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=78332&view=rev
> >> Log:
> >> Permit a class to friend its members in C++0x, without restriction.
> >> Permit a class to friend its class members in C++ 98, as long as
> >> extensions
> >> are enabled (and even when they aren't, only give an extwarn about
> >> it).
> >
> > We generally prefer to make a warning "Extension" rather than an
> > "ExtWarn" outside of GNU mode.
> 
> My understanding that this is an issue covered by a DR.  Aren't DR's
> (after approved) considered normative?  Isn't this the same as
> considering C++'03 the same as C++'98?
> 
> -Chris

A DR becomes normative once the ISO paperwork is filed <g>
In the case of the 03 standard, that means any issue with the status "TC1".  I thought that this was one of them, but checking the issue list I find CD1, which means it will be part of 0x.  There are many accepted issues in the list now that deal with 0x features, and I don't think it is wise to start making a judgement call on which we think are 0x features, and which are obviously supposed to apply in a 98/03 world.  A few more examples would be reference collapsing, default template parameters for functions and extended SFINAE rules. All of these are processed as issues and have no direct dependency on 0x features, yet are typically viewed as 0x features in their own right.

I think the approach that these are 'widely supported extensions' rather than strictly part of the standard is probably the right one.

AlisdairM







More information about the cfe-commits mailing list