This is the mail archive of the gcc-bugs@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: c++/9558: subclass cannot find parent members without explicit"this->" in some cases


> If that's how C++ works in the official spec, it's not how it works in 
> real life.

I think we all understand this, but this is just so because compilers 
previously didn't implement the standard correctly and did not _force_ you 
to write compliant code. Mark et al dared to do so in the new parser.


> I've got half a million lines of code in Unreal Tournament 2003 that 
> this "feature" breaks, which compile fine on everything from CodeWarrior 
> to Intel's compiler to Visual C to GCC 2.95.3, 3.1, and 3.2. I can list 
> at least five other games I've worked on that this breaks. I do not 
> control or write this code, I just port it.

gcc 2.95 ... 3.2 accept it, but just because they don't implement the 
standard.

Intel icc accepts it, unless for example you switch on -Xc -ansi. If you 
do so, then it won't accept your code either. AFAIK, the same holds for 
HP's aCC.

The situation might be worse than you think: if two-stage name lookup is 
not implemented, then you might get wrong results sometimes. So you have 
to decide whether you implement the standard or the old status quo.


> Surely there's got to be some consideration for backwards compatibility, 
> if not real world issues?

I think the answer will be: if you want to use a newer compiler, fix your 
code. I fixed my 250k lines of code, which was painful admittedly, but I 
think it's necessary.

W.

-------------------------------------------------------------------------
Wolfgang Bangerth             email:            bangerth@ticam.utexas.edu
                              www: http://www.ticam.utexas.edu/~bangerth/



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