命名空间
变体
操作

std::experimental::scope_success<EF>::~scope_success

来自 cppreference.cn
~scope_success() noexcept(noexcept(std::declval<EF&>()()));
(库基础 TS v3)

如果 std::uncaught_exceptions() 的结果小于或等于未捕获异常的计数器(通常在正常退出时)并且 `scope_success` 处于活动状态,则调用退出函数,然后销毁存储的 `EF`(如果它是一个函数对象)以及任何其他非静态数据成员。

异常

抛出调用退出函数时抛出的任何异常。

注意

析构函数是否在栈展开时被调用可以通过比较 std::uncaught_exceptions() 的结果和 `scope_success` 中未捕获异常的计数器来检测。

与 C++ 标准库中的其他类或类模板特化以及其他 C++ TR/TS 不同,`scope_success` 的析构函数允许抛出异常。

[编辑] 另请参阅

使 scope_success 变为非活动状态
(公共成员函数) [编辑]