C++: INHERITED_VALUE_BINDING_P

Gabriel Dos Reis gdr@integrable-solutions.net
Mon Oct 27 19:41:00 GMT 2003


Mark Mitchell <mark@codesourcery.com> writes:

| > | In particular, this code:
| > | 
| > | struct A {
| > |   struct B {};
| > | };
| > | 
| > | struct C : public A {
| > |   void B();
| > | };
| > | 
| > | struct C::B b;
| > | 
| > | is legal.
| > 
| > I do not believe the program is well-formed for the reasons explained
| > in 10.2/2
| 
| Neither G++ nor the EDG front end agree with you.

Well, I'm questioning G++ behaviour and I do not believe it is right.
As of EDG behaviour, I think it is wrong as well and we can discuss
that with them.

| Both consider the tag-type and ordinary namespaces separately; a
| declaration hides only those entities from base classes that are of the
| same kind.

How can that be derived from the standard text? I can not see where.
However, there are explicit wordings to the contrary.

| I can't say definitively whether that's correct or not, but before we
| change G++ we should have an opinion from the commitee.

Sure.

-- Gaby



More information about the Gcc mailing list