This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/52126] [4.7 Regression] compilation error
- From: "fabien at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 16 Feb 2012 09:57:20 +0000
- Subject: [Bug c++/52126] [4.7 Regression] compilation error
- Auto-submitted: auto-generated
- References: <bug-52126-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52126
--- Comment #6 from fabien at gcc dot gnu.org 2012-02-16 09:57:20 UTC ---
(In reply to comment #5)
> (In reply to comment #2)
> > Further investigation shows that the issue appears only when inheritance from
> > the template class (class B : private A<T>) is provided explicitly. According
> > to the standard a nested class defined inside a class template is implicitly
> > template as well.
>
> I don't think that's relevant. The point is that the injected-class-name 'A'
> and 'A<T>' both refer to the class template, and should work equivalently.
Yes, they should. The first bug is that 'A' does not behave like 'A<T>' -- I
have fixed it. The second bug is that 'A<T>' as a base for a nested class does
not currently work if A is also an enclosing class. I have tested a patch, but
it is not quite ready.