最近,我在 Codepad 上测试了一些模板代码。虽然代码是正确的,但 GCC 给了我一个非常奇怪的错误。我还在 Ideone 上对其进行了测试:
测试代码:
template<int num>
struct count;
template<>
struct count<-1>
{
};
int main()
{
return 0;
}
以下是 Codepad (GCC 4.1.2) 和 Ideone (GCC 4.3.4) 上的结果: GCC 4.1.2输出:
Line 5: error: 'count' is not a template
而 GCC 4.3.4 编译正常而没有错误。这真的是编译器错误,还是我的代码不正确(并且由于扩展而编译?)