1

这是我想要的代码:

class Machine {

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

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

我的问题:这不能编译,因为step()它既不是全局函数也不是State. 但从逻辑上讲,这是正确的,因为step() 它不会修改任何东西——它只访问映射结构,但同样是只读的。

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

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

4

0 回答 0