これが私の希望するコードです:
class Machine {
private:
QSet<State*> states;
State* step(State* st){/*...*/}
public:
void makeStep(){
//...
QTConcurrent::map(states, step);
//...
}
私の問題:step()
はグローバル関数でもメンバーでもないため、これはコンパイルされませんState
。しかし、論理的にはこれは正しいでしょう。なぜなら、step()
は何も変更しないからです。これは、マップの構造にアクセスするだけで、読み取り専用です。
ただし、変更する必要があるのは setstates
です。私は賢く、それぞれを同時に変更したいと考えていましState*
た (ブロックしない方法で)。
step()
グローバルにすべきか?それが役立つだろう?