http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60705
Bug ID: 60705
Summary: alias template member access ignored
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: major
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: R.HL at gmx dot net
GCC simply ignores the fact, that a private member is inaccessible:
class A
{
struct B {};
};
template<class>
using C = A::B; // Already the declaration of this alias template is ill-formed
int main()
{
C<A> c1;
C<int> c2;
}
This compiles without any warnings/errors using the GCC-4.9 snapshot from the
2nd march, and is obviously ill-formed (because access control applies to all
names in all declarations, ยง11/4).
There is AFAICS no exception for alias templates.