Некоторое время назад я наткнулся на некоторый код, который помечал членную переменную класса с ключевым словом mutable
. Насколько я вижу, это просто позволяет вам изменить переменную в методе const
:
class Foo
{
private:
mutable bool done_;
public:
void doSomething() const { ...; done_ = true; }
};
Является ли это единственным использованием этого ключевого слова или для него больше, чем для глаз? С тех пор я использовал этот метод в классе, отмечая boost::mutex
как изменяемый, позволяя функциям const
блокировать его для причин безопасности потоков, но, честно говоря, это похоже на хак.