12
  #include<QMetaType>

  typedef QList<int> IntList;

  qRegisterMetaType<IntList>("IntList");


error C2909: 'qRegisterMetaType': explicit instantiation of function template requires return type

C2909は私が定義する必要があると言います

 template int qRegisterMetaType<IntList>("IntList");

上記のように定義すると、以下のエラーが発生します

 error C2059: syntax error : 'string'
 warning C4667: 'int qRegisterMetaType(void)' : no function template defined that matches forced instantiation

なぜこのエラーが発生するのですか?

4

3 に答える 3

12

「qRegisterMetaType」は関数です。コードブロックに表示される必要があります。

于 2014-07-23T15:37:51.870 に答える
2
int metatype_id = qRegisterMetaType<IntList>("IntList");
于 2012-07-27T01:44:58.263 に答える
2

Q_DECLARE_METATYPE(IntList)登録する前に追加する必要があります。

于 2012-07-27T09:08:06.787 に答える