2016-05-22 21 views
1

にない型指定子私は(C++での)クラスの以下の構造を有する:仮想関数の実装

template<T> 
class A { 
    class B { 
     class C_Base { 
      virtual int foo(const T &a, const T &b) = 0; 
     }; 

     template<U> 
     class C final : public C_Base { 
      const U &x; 
      virtual int foo(const T &a, const T &b) { 
       return x(a, b); 
      } 
     }; 
    }; 
}; 

しかし、MSVCは私C内部fooの定義に誤りmissing type specifier - int assumed. Note: C++ does not support default-int.を提供します。これはなぜですか、それはどのように修正できますか?

+1

あなたは何かを作っています。このコードをコンパイルしようとすると、最初の行 'template 'ですぐに失敗します。これらのエラーを修正することで、MSVCで問題なくコンパイルできます。 – AnT

答えて

4

typenameというキーワードを忘れました。

template<typename T> 
//-------^^^^^^^^ 
+0

長い一日でした...ありがとう、私はこれを忘れてしまったとは信じられません... –