FreeBSD Manual Pages
std::experi...cope_success(3) C++ Standard Libarystd::experi...cope_success(3) NAME std::experimental::scope_success::scope_success - std::experimen- tal::scope_success::scope_success Synopsis template <class Fn> explicit scope_success( Fn&& fn ) noexcept(/*see (1) (library fundamentals TS v3) below*/); scope_success( scope_success&& other ) (2) (library fundamentals TS v3) noexcept(/*see below*/); scope_success( const scope_success& ) = delete; (3) (library fundamentals TS v3) Creates a scope_success from a function, a function object or an- other scope_success. 1) Initializes the exit function with a function or function object, and initializes the counter of uncaught exceptions as if with std::uncaught_excep- tions(). The constructed scope_success is active. If Fn is not an lvalue reference type and std::is_nothrow_con- structible_v<EF, Fn> is true, the stored EF is initialized with std::forward<Fn>(fn); other- wise it is initialized with fn. This overload participates in overload resolution only if std::is_same_v<std::remove_cvref_t<Fn>, scope_success> is false and std::is_constructible_v<EF, Fn> is true. The program is ill-formed if function call expression fn() is ill- formed. The behavior is undefined if calling fn() results in undefined be- havior, even if fn has not been called. 2) Move constructor. Initializes the stored EF with the one in other, and initializes the counter of uncaught exceptions with the one in other. The constructed scope_success is active if and only if other is active before the construction. If std::is_nothrow_move_constructible_v<EF> is true, initializes stored EF (denoted by exitfun) with std::forward<EF>(other.exitfun), otherwise initial- izes it with other.exitfun. After successful move construction, other.release() is called and other becomes inactive. This overload participates in overload resolution only if std::is_nothrow_move_constructible_v<EF> is true or std::is_copy_constructible_v<EF> is true. The behavior is undefined if * std::is_nothrow_move_constructible_v<EF> is true and EF does not meet the requirements of MoveConstructible, or * std::is_nothrow_move_constructible_v<EF> is false and EF does not meet the requirements of CopyConstructible. 3) scope_success is not CopyConstructible. Parameters fn - function or function object used for initializing the stored EF other - scope_success to move from Exceptions Any exception thrown during the initialization of the stored EF. 1) noexcept specification: noexcept(std::is_nothrow_constructible_v<EF, Fn> || std::is_nothrow_constructible_v<EF, Fn&>) 2) noexcept specification: noexcept(std::is_nothrow_move_constructible_v<EF> || std::is_nothrow_copy_constructible_v<EF>) Example This section is incomplete Reason: no example See also uncaught_exception uncaught_exceptions checks if exception handling is currently in progress (removed in C++20) (function) (C++17) release makes the scope_success inactive (public member function) http://cppreference.com 2022.07.31 std::experi...cope_success(3)
NAME | Synopsis | Parameters | Exceptions | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::scope_success::scope_success&sektion=3&manpath=FreeBSD+Ports+15.0>
