本文主要是介绍一个C++实现的rollback小技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
今天看刘未鹏的一篇介绍现在C++的文章时,学到了一个C++中实现rollback的技巧。
先定义一个rollback管理类:
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: // noncopyableScopeGuard(ScopeGuard const&);ScopeGuard& operator=(ScopeGuard const&);
};
然后就可以在代码中这么用了:
Scope
这篇关于一个C++实现的rollback小技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!