template<class T>
void foo()
{
M
}
除非我实例化它,否则 Visual C++ 不会告诉我上面的代码包含错误。这是为什么?
最佳答案
因为Visual C++出错了。它没有实现 two-phase lookup .它应该检查模板的语法是否正确,即使您没有实例化它,但它并没有这样做。
GCC doesn't accept it.并不是说这一定意味着它是不对的,但无论如何都有一个例子可以说明应该发生的事情。
关于c++ - 为什么这段代码不会产生编译错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11589766/