http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46687

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-11-28 
01:57:06 UTC ---
C has two copies of the name A::foo, as B1::foo and B2::foo.

if C only saw A::foo then it would be unambiguous because the same members
would be found, as in this variant:

struct A {
   static int foo();
   static int foo(char);
};

struct B1 : A { };
struct B2 : A { };

struct C : B1, B2 { };

enum { X = sizeof C::foo() };


However, because you have using declarations in B1 and B2 name lookup finds
B1::foo and B2::foo ... at least by my reading, which could be wrong

Reply via email to