> | > | Are you saying that member variables must now be accessed with an
> | > | explicit "this->" ? Or only those in base classes? Or only those in
> | > | template classes?
> | > 
> | > base classes.
> | 
> | Templatized base classes though ? Or something. I'd love to see an
> | explanation (and ... gosh ... even a rationale :)
> 
> Go hunt in the gcc gnats database... there you will find both.

I asked on comp.lang.c++. The answer makes intuitive sense but seems to have 
engendered a rich stream of "Why? It works with my compiler." answers! 
Still the guy in question works for a company that make compilers so I 
guess that he 'just knows' ;-)

Angus

-----------------------------------------------------------------------
What base class is emergency_exit a member of in the following template
definition?

template <class T>
class B : public T
{
public:
        void foo()
        {
        if (emergency_exit)
                ...
        }
};

>  And how would "this->" assist in telling the
> compiler that it is from the base class (as opposed to the derived class)?

It says that it's a member. Since it's not in B, it has to be in T.

> Using "this->" is intended to aid readers of the code, not to resolve
> compiler issues.  What compiler requires this?
> 

Every conforming one, which is to say very few currently.


Pete Becker
Dinkumware, Ltd.

Reply via email to