C++ CScopeGuard
2015-09-20 21:47
274 查看
class CScopeGuard { private: bool m_Dismissed; std::function<void()> m_pfOnExitScope; private: void * operator new(size_t) = delete; CScopeGuard(CScopeGuard & sg) = delete; CScopeGuard & operator=(CScopeGuard & sg) = delete; CScopeGuard & operator=(std::function<void()> const & soe) = delete; public: /*explicit*/ inline APIENTRY CScopeGuard(std::function<void()> pfOnExitScope) noexcept : m_Dismissed(false), m_pfOnExitScope(pfOnExitScope) { } inline APIENTRY ~CScopeGuard() { if (!m_Dismissed) { m_pfOnExitScope(); } } public: inline void APIENTRY Dismiss(bool dismissed = true) noexcept { m_Dismissed = dismissed; } };
相关文章推荐
- MinGW环境变量设置、CodeBlock添加额外的库
- 从c到c++<一>
- 项目23.2乱玩数字
- C/C++ 之 关于空类的大小与构造函数参数传递
- C++ 11 学习3:显示虚函数重载(override)
- C++ 11 学习2:空指针(nullptr) 和 基于范围的for循环(Range-based for loops)
- C++ 11 学习1:类型自动推导 auto和decltype
- 《C++编程规范》--不要拘泥于小节
- 标准C++的一些约定
- 项目23 被3或者5整除的数
- c++单元测试框架Gtest的简单配置与使用
- C++ 1. 基础语法 输入输出、流程控制、初识类
- C++ primer 5 笔记3 chapter 3 字符串, 向量和数组
- c++设计模式----Flyweight(享元)
- C语言中的宏
- c++爱问的面试问题
- C++ string详解
- 如何解决C/C++中stack overflow问题
- 使用GetProcAddress获取C++重载函数
- C++中虚析构函数