这是我想要的代码:
class Machine {
private:
QSet<State*> states;
State* step(State* st){/*...*/}
public:
void makeStep(){
//...
QTConcurrent::map(states, step);
//...
}
我的问题:这不会编译,因为step()
既不是全局函数也不是State
的成员。但从逻辑上讲这是正确的,因为step()
不会修改一个东西 - 它只访问一个地图结构,但同样只读取它。
然而,应该修改的是集合states
。我想要聪明并同时修改每个State*
(以非阻塞的方式)。
我应该step()
全球吗?这会有帮助吗?