例
template <typename T>
struct A
{
typedef A<T> super;
};
template <typename T>
struct B : A<T>
{
B() : super() {} // <-- HERE
};
int main()
{
}
MSVCコンパイラでは、これはそのままコンパイルされます。ただし、gccでは、に変更super()
する必要がありA<T>::super()
ます。ここではgccが正しいと思いますが、誰かがここでのルールと技術的に正しいコンパイラを理解するのを手伝ってくれるでしょうか?