1

次のコードを試しました

class MailBox{
};

 template<typename T>
     void foo(T){
     cout << "In foo" << endl;
 }

template<typename T>
 void foo1(T){
     foo(T);
 }

 main()
 {
         MailBox m;
         std::vector<MailBox> m1;

         foo1(m1);
 }

コンパイル中に以下のエラーが発生しています

test1.cpp: In function âvoid foo1(T)â:
test1.cpp:15: error: expected primary-expression before â)â token

これを解決する方法はありますか?

4

2 に答える 2

7

正式なパラメータがありません:

 template<typename T>
     void foo(T t) {
         cout << "In foo" << endl;
 }

 template<typename T>
     void foo1(T t) {
         foo(t);
 }
于 2013-03-01T07:49:38.657 に答える
1

パラメータの名前を忘れています!

たとえば、次のfoo1()ようになります。

template <typename T>
  foo1 (T myT) {
    foo(myT);
  }

テンプレート化された型は依然として型であり、それらを使用してそれらの型のもの (変数など) を宣言する必要があることに注意してください。

于 2013-03-01T07:50:42.223 に答える