Вот мой желаемый код:
class Machine {
private:
QSet<State*> states;
State* step(State* st){/*...*/}
public:
void makeStep(){
//...
QTConcurrent::map(states, step);
//...
}
Моя проблема: это не компилируется, поскольку step()
не является ни глобальной функцией, ни членом State
. Но с логической точки зрения это было бы правильно, потому что step()
не изменяет ничего - он только получает доступ к структуре карт, но, опять же, только для чтения.
Что нужно изменить, тем не менее, это набор states
. Я хотел быть умным и модифицировать каждый State*
одновременно (без блокировки).
Должен ли я сделать step()
глобальным? Это поможет?