我正在尝试实现QtConcurrent的基本程序。 发现很多有类似问题的网站,但到目前为止,他们的解决方案都没有对我有用。
我的代码:
void Setup::addOne(int &i)
{
++i;
}
void Setup::Test()
{
QList<int> list;
list.append(1);
QtConcurrent::map(list, &Setup::addOne);
}
尝试构建它会显示以下错误:
C2064: term does not evaluate to a function taking 1 arguments
错误是指qtconcurrentmapkernel.h中的以下行:
bool runIteration(Iterator it, int, void *)
{
map(*it);
return false;
}
我正在使用Qt5。谢谢你的帮助。
答案 0 :(得分:5)
非静态成员函数实际上有一个隐藏参数,一个指向对象的指针,该对象在函数内变为this
。
除非您需要访问成员变量或调用其他成员函数,否则我建议您使用addOne
函数static
。