/home/wuyan/test/parse_threads.h:782: error: no matching function for call to 'QCache<QString, QVector<DP104> >::insert(const QString&, const QVector<DP104>&)' t_cache.insert(key,value); ^~~~~~~
时间: 2024-02-24 10:59:57 浏览: 96
GoApiServer:一个可以自动构建CURD控制器的go-api服务,并预设RBAC权限功能
错误提示显示 `QCache<QString, QVector<DP104>>` 类型不存在 `insert` 接受两个参数的成员函数。这可能是因为您的 `DP104` 类型未被 Qt 的元对象系统注册。您需要在 `MyTemplateClass` 的构造函数中调用 `qRegisterMetaType` 函数来注册 `DP104` 类型,例如:
```
MyTemplateClass() {
qRegisterMetaType<DP104>("DP104");
t_cache.setMaxCost(MAP_MAX);
}
```
这样可以将 `DP104` 类型注册到 Qt 的元对象系统中,使其可以被正确的序列化和反序列化。如果您的 `DP104` 类型是自定义类型,需要在其定义中添加 Qt 元对象系统相关的宏定义,例如:
```
class DP104 : public QObject {
Q_OBJECT
public:
// 类定义
};
```
添加 `Q_OBJECT` 宏定义可以使 `DP104` 类型支持信号和槽机制,并被正确的注册到 Qt 的元对象系统中。
阅读全文