为什么此代码无法在VS2010中编译?
struct Base
{
void foo0() { }
};
template<typename BASE> struct Derived : BASE
{
void foo1() { foo0(); }
};
int main()
{
Derived<Base> ddd;
ddd.foo1();
return 0;
}
它可以在其他编译器中正常编译。如果我借助以下命令调用foo0,它也会进行编译:this-> foo0();
最佳答案
我只是想知道,此行为背后的原因是语言扩展编译器选项(/ Za)。因此,如果禁用语言扩展,则以上代码将无法编译。奇怪的是,它必须是C ++语言的一部分,而不是MS语言扩展。
希望这可以帮助某人...
关于c++ - VS2010中反复出现的模板模式错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20443484/