> > namespace X
> > {
> > namespace Y
> > {
> > namespace Z
> > {
> >         struct A { typedef int int_t; };
> >         struct Z { typedef int int_t; }; } } }
> >
> > using namespace X::Y::Z;
> >
> > int
> > main()
> > {
> >         Z::A::int_t i = 0;
> >         Z::Z::int_t j = 0;
> >         return i == j;
> > }
> > Why did g++ look for struct A in struct Z instead of namespace Z?
> > It looked for struct Z in namespace Z.
> 
> Actually it did not look for struct Z in namespace Z.  It 
> found the constructor Z in struct Z.  Note this is a bug that 
> it found the constructor as the type, see
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11764 .

Even if g++ found constructor Z, it shouldn't have found int_t
in it.  I didn't get an error about int_t not found for Z::Z.

--jc

Reply via email to