最近、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 はエラーなしで正常にコンパイルされます。これは本当にコンパイラのバグですか、それとも私のコードが正しくないのですか (そして、拡張機能のおかげでコンパイルされますか?)