- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码需要范围守卫,但是我是否必须手动 Dismiss()
从函数正常退出时所有范围守卫?即
void Deleter(MyClass* obj)
{
delete obj;
}
MyClass* Func()
{
MyClass* obj = new MyClass();
ScopeGuard sg1 = MakeObjGuard(Deleter, obj);
//More objects created. And more scope guards.
sg1.Dismiss();
//...Same for other guards
return obj;
}
最佳答案
你必须在函数结束后解散你想要存活的对象的守卫。否则他们将各自删除他们正在守卫的对象。
关于c++ - ScopeGuard 解雇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269484/
我的代码需要范围守卫,但是我是否必须手动 Dismiss() 从函数正常退出时所有范围守卫?即 void Deleter(MyClass* obj) { delete obj; } MyCla
我在一个函数中分配了多个资源,因此有很多指针,我必须从中返回一个指针(比如 ret_ptr)并在离开函数之前释放其他指针(所有 othr_ptr)。 我在这个函数中有多个导出点(其中 ret_ptr
我遇到了this article多年前由 Andrei Alexandrescu 和 Petru Marginean 编写,其中介绍并讨论了一个名为 ScopeGuard 的实用程序类,用于编写异常安
我正在尝试写一个简单的 ScopeGuard based on Alexandrescu concepts但使用 c++11 习语。 namespace RAII { template
我的印象是它是第三方编写的库中包含的 C++ 类。我试着在谷歌上搜索,我发现了一篇帖子说使用它是个好主意。但是,它未能准确描述它是什么以及我如何将它合并到我的代码中。谢谢。 最佳答案 ScopeGua
这个问题在这里已经有了答案: 关闭 12 年前。 Possible Duplicate: prohibiting instantiation as a temporary object (C++)
ON_BLOCK_EXIT 是 ScopeGuard 提供的实用程序宏implementation .它定义一个本地对象的唯一原因是当它超出范围时执行其用户提供的析构函数。它被定义为: #define
考虑这些代码在现实生活中发生。 库代码具有一个名为log_on()的函数,失败时返回false,成功时返回true,但是错误案例过多。 在返回true/false之前,它需要调用指定的回调函数应用程序
我是一名优秀的程序员,十分优秀!