class ScopeGuard
{
public:
explicit ScopeGuard(std::function<void()> onExitScope)
: onExitScope_(onExitScope), dismissed_(false)
{ }
~ScopeGuard()
{
if(!dismissed_)
{
onExitScope_();
}
}
void Dismiss()
{
dismissed_ = true;
}
private: std::function<void()> onExitScope_;
bool dismissed_; private: // noncopyable
ScopeGuard(ScopeGuard const&);
ScopeGuard& operator=(ScopeGuard const&);
};
这种private成员变量后面加下划线是常见的风格吗?
解决方案
5
记得在loki和chromium经常这样干,用来表示成员。
15
源自于编译器设计行业的惯用风格,表示底层实现,后来延伸到类的设计,表示类的底层实现。