I am getting an unexpected compiler error for this code with GCC 4.6.0:
struct A {
int f();
int f(int);
};
template <typename> struct B : A
{
};
template <typename T> struct C : B<T>
{
void g() {
A::f();
}
};
It is accepted with the default options, but is rejected with
-std=c++0x:
a.ii: In member function âvoid C<T>::g()â:
a.ii:11:11: error: cannot call member function âint A::f()â without
object
It is accepted in GCC 4.5.2, both in default mode and in C++0x mode. Is
this a bug in GCC, or did C++0x make this invalid?