g ++を使用してMicrosoft Visual C++コードをコンパイルしようとしています。今私は本当に理解できないコンパイラエラーに遭遇しました。 (簡体字)のコードは次のようになります。私はグラムでこれをコンパイルしようとすると(バージョン4.4.5)++テンプレートベースクラスメンバでg ++コンパイラエラー
template<int X> struct A {
template<class Ret> static Ret call() {
return 0;
}
};
template<int X> struct B : A<X> {
int f() {
return A<X>::call<int>();
}
};
、私は次のエラーを取得する:
main.cpp: In member function int B<X>::f():
main.cpp:16: error: expected primary-expression before int
main.cpp:16: error: expected ; before int
main.cpp:16: error: expected unqualified-id before > token
私はテンプレートの種類を削除した場合(Ret)メソッドA :: callから、コードはうまくコンパイルされます。誰もここで何が間違って見える?
ありがとうございます!
[どこで、なぜ私は「テンプレート」と「型名」のキーワードを入れなければならないのですか?](http://stackoverflow.com/questions/610245/where-and-why-do-の可能重複テンプレートとタイプ名のキーワードを持つ必要があります) –