将函数传递给QtConcurrent :: map

时间:2011-11-24 16:02:23

标签: c++ qt4 qtconcurrent

这是我想要的代码:

class Machine {

private:
   QSet<State*> states;
   State* step(State* st){/*...*/}

public:
   void makeStep(){
        //...
        QTConcurrent::map(states, step);
        //...
   }

我的问题:这不会编译,因为step()既不是全局函数也不是State的成员。但从逻辑上讲这是正确的,因为step()不会修改一个东西 - 它只访问一个地图结构,但同样只读取它。

然而,应该修改的是集合states。我想要聪明并同时修改每个State*(以非阻塞的方式)。

我应该step()全球吗?这会有帮助吗?

0 个答案:

没有答案