This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: c++/9558: subclass cannot find parent members without explicit"this->" in some cases
- From: Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 4 Feb 2003 00:26:00 -0000
- Subject: Re: c++/9558: subclass cannot find parent members without explicit"this->" in some cases
- Reply-to: Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
The following reply was made to PR c++/9558; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: "Ryan C. Gordon" <ryan@epicgames.com>
Cc: gcc-bugs@gcc.gnu.org, <gcc-gnats@gcc.gnu.org>
Subject: Re: c++/9558: subclass cannot find parent members without explicit
"this->" in some cases
Date: Mon, 3 Feb 2003 18:21:52 -0600 (CST)
> 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/