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

您需要先添加Q_DECLARE_METATYPE(IntList)才能注册。

于 2012-07-27T09:08:06.787 回答
2
int metatype_id = qRegisterMetaType<IntList>("IntList");
于 2012-07-27T01:44:58.263 回答