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

Rya*_*yan -1 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);
}
Run Code Online (Sandbox Code Playgroud)

尝试构建它会显示以下错误:

C2064: term does not evaluate to a function taking 1 arguments
Run Code Online (Sandbox Code Playgroud)

该错误引用qtconcurrentmapkernel.h中的以下行:

bool runIteration(Iterator it, int, void *)
{
    map(*it);
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Qt5.谢谢您的帮助.

Som*_*ude 5

非静态成员函数实际上有一个隐藏参数,一个指向对象的指针,该对象this进入函数内部.

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