例子
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 在这里是正确的,但是有人可以帮我理解这里的规则以及哪个编译器在技术上是正确的吗?