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