C2064:term不评估为带有1个参数的函数QtConcurrent :: map

时间:2017-05-30 08:17:44

标签: c++ qt dictionary qtconcurrent

我正在尝试实现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。谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

非静态成员函数实际上有一个隐藏参数,一个指向对象的指针,该对象在函数内变为this

除非您需要访问成员变量或调用其他成员函数,否则我建议您使用addOne函数static