------- Comment #8 from bangerth at gmail dot com  2010-03-03 19:40 -------
(In reply to comment #7)
> The use of a base class ( class B : A ) is not a declaration of A.
> Thus the base class ( class A ) is visible and not private.
> 
> Reopen the bug and fix it.

Andrew was right: the name 'A' is injected into the class 'A' upon
declaration of the class 'A', into 'B' upon
deriving from it, and from 'B' into 'C'. This amounts to a 'using'
declaration. As such, 'A' exists in 'C' as a name, but it is
private and consequently inaccessible. Since you cite chapter and
verse, take a look at 3.4/3 and 9.1/2.

As stated before, if you don't want the locally injected name, use
::A instead.

W.


-- 


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

Reply via email to