[Bug c++/55361] New: Access control in templates only happens when instantiating a method
joerg at netbsd dot org
gcc-bugzilla@gcc.gnu.org
Fri Nov 16 22:25:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55361
Bug #: 55361
Summary: Access control in templates only happens when
instantiating a method
Classification: Unclassified
Product: gcc
Version: 4.7.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: joerg@netbsd.org
Consider the following example:
class C
{
bool blocked;
};
template < class > struct F
{
void operator* ()
{
C a;
a.blocked;
}
};
int main() {
F<int> x;
}
The operator is violating the access specifications of C, but this isn't
detected until it is actually used. Nothing in it depends on the template
though, so this check should happen earlier.
More information about the Gcc-bugs
mailing list