Имеет ли ключевое слово mutable какую-либо цель, кроме возможности изменения переменной с помощью const-функции?

Некоторое время назад я наткнулся на некоторый код, который помечал переменную-член класса с помощьюmutable ключевое слово. Насколько я вижу, это просто позволяет вам изменить переменную вconst метод:

<code>class Foo  
{  
private:  
    mutable bool done_;  
public:  
    void doSomething() const { ...; done_ = true; }  
};
</code>

Это единственное использование этого ключевого слова или это больше, чем кажется на первый взгляд? С тех пор я использовал эту технику в классе, отмечаяboost::mutex как изменяемое разрешениеconst функции для его блокировки по соображениям безопасности потоков, но, если честно, это похоже на хак.

Ответы на вопрос(18)

Ваш ответ на вопрос