NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
scope_success< Func > 模板类 参考

作用域成功守卫 更多...

#include <scope.hpp>

Public 成员函数

template<typename F, enable_if_t<!is_same_v< remove_cvref_t< F >, scope_success > &&is_constructible_v< Func, F > &&!is_nothrow_constructible_v< Func, F >, int > = 0>
 scope_success (F &&func)
 构造函数(异常不安全)
template<typename F, enable_if_t<!is_same_v< remove_cvref_t< F >, scope_success > &&is_constructible_v< Func, F > &&is_nothrow_constructible_v< Func, F >, int > = 0>
 scope_success (F &&func) noexcept
 构造函数(异常安全)
 scope_success (scope_success &&rhs) noexcept(is_nothrow_move_assignable_v< Func >)
 移动构造函数
 ~scope_success () noexcept(is_nothrow_invocable_v< Func >)
 析构函数
void release () noexcept
 释放守卫

详细描述

template<typename Func>
class scope_success< Func >

作用域成功守卫

模板参数
Func可调用对象类型

仅在作用域正常退出时执行指定的函数。 用于实现提交操作、日志记录等正常流程的清理。

注解
函数对象的执行不能抛出异常。

在文件 scope.hpp213 行定义.

构造及析构函数说明

◆ scope_success() [1/3]

template<typename Func>
template<typename F, enable_if_t<!is_same_v< remove_cvref_t< F >, scope_success > &&is_constructible_v< Func, F > &&!is_nothrow_constructible_v< Func, F >, int > = 0>
scope_success< Func >::scope_success ( F && func)
inlineexplicit

构造函数(异常不安全)

模板参数
F函数对象类型
参数
func要执行的函数对象

在文件 scope.hpp226 行定义.

引用了 forward() , 以及 uncaught_exceptions().

被这些函数引用 scope_success().

◆ scope_success() [2/3]

template<typename Func>
template<typename F, enable_if_t<!is_same_v< remove_cvref_t< F >, scope_success > &&is_constructible_v< Func, F > &&is_nothrow_constructible_v< Func, F >, int > = 0>
scope_success< Func >::scope_success ( F && func)
inlineexplicitnoexcept

构造函数(异常安全)

模板参数
F函数对象类型
参数
func要执行的函数对象

在文件 scope.hpp240 行定义.

◆ scope_success() [3/3]

template<typename Func>
scope_success< Func >::scope_success ( scope_success< Func > && rhs)
inlinenoexcept

移动构造函数

参数
rhs要移动的守卫对象

在文件 scope.hpp250 行定义.

引用了 is_nothrow_move_assignable_v, move() , 以及 scope_success().

◆ ~scope_success()

template<typename Func>
scope_success< Func >::~scope_success ( )
inlinenoexcept

析构函数

如果当前未捕获异常数量不大于构造时记录的值,说明正常退出, 执行函数对象。

在文件 scope.hpp263 行定义.

引用了 is_nothrow_invocable_v , 以及 uncaught_exceptions().

成员函数说明

◆ release()

template<typename Func>
void scope_success< Func >::release ( )
inlinenoexcept

释放守卫

使守卫不再执行清理操作,通过将异常计数设置为极小值来实现。

在文件 scope.hpp274 行定义.

引用了 numeric_traits< T, Dummy >::max().


该类的文档由以下文件生成: