1

これが私の希望するコードです:

class Machine {

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

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

私の問題:step()はグローバル関数でもメンバーでもないため、これはコンパイルされませんState。しかし、論理的にはこれは正しいでしょう。なぜなら、step() は何も変更しないからです。これは、マップの構造にアクセスするだけで、読み取り専用です。

ただし、変更する必要があるのは setstatesです。私は賢く、それぞれを同時に変更したいと考えていましState*た (ブロックしない方法で)。

step()グローバルにすべきか?それが役立つだろう?

4

0 に答える 0