不久前,我遇到了一些代码,它们用mutable
关键字标记了一个类的成员变量。据我所知,它只是允许你在const
方法中修改一个变量:
class Foo
{
private:
mutable bool done_;
public:
void doSomething() const { ...; done_ = true; }
};
这是唯一的使用这个关键字还是有更多的它比满足眼睛?此后我在一个类中使用了这种技术,将boost::mutex
标记为mutable,允许const
函数出于线程安全的原因锁定它,但是,说实话,这感觉有点hack。