ビジュアル C++ では、次のようなことができます。
template <class T>
class A{
protected:
T i;
};
template <class T>
class B : public A<T>{
T geti() {return i;}
};
これを g++ でコンパイルしようとすると、エラーが発生します。私はこれをしなければなりません:
template <class T>
class B : public A<T>{
T geti() {return A<T>::i;}
};
標準 C++ で前者を実行することは想定されていませんか? または、gcc で何かが誤って構成されており、エラーが発生していますか?