前一段时间,遇到了一些代码,用mutable关键字标记了一个类的成员变量。据我所见,它只是允许你修改一个const方法中的变量:
class Foo
{
private:
mutable bool done_;
public:
void doSomething() const { ...; done_ = true; }
};
这是这个关键字的唯一用途,还是有更多的比它满足眼睛?我已经在一个类中使用了这种技术,标记boost::mutex为可变的,允许const函数为了线程安全的原因锁定它,但是,说实话,这感觉就像一个黑客。
相似问题