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