FreeBSD Manual Pages
std::experi...::scope_fail(3) C++ Standard Libarystd::experi...::scope_fail(3) NAME std::experimental::scope_fail - std::experimental::scope_fail Synopsis Defined in header <experimental/scope> template<class EF> (library fundamentals TS v3) class scope_fail; The class template scope_fail is a general-purpose scope guard in- tended to call its exit function when a scope is exited via an exception. scope_fail is not CopyConstructible, CopyAssignable or MoveAssigna- ble, however, it may be MoveConstructible if EF meets some requirements, which per- mits wrapping a scope_fail into another object. A scope_fail may be either active, i.e. calls its exit function on destruction, or inactive, i.e. does nothing on destruction. A scope_fail is active after constructed from an exit function. A scope_fail can become inactive by calling release() on it either manually or automatically (by the move constructor). An inactive scope_fail may also be obtained by initializing with another inactive scope_fail. Once a scope_fail is inactive, it cannot become active again. A scope_fail effectively holds an EF and a bool flag indicating if it is active, alongwith a counter of uncaught exceptions used for detecting whether the destructor is called during stack unwinding. Template parameters EF - type of stored exit func- tion Type requirements - EF shall be either: * a Destructible FunctionObject type * an lvalue reference to FunctionObject * an lvalue reference to function - Calling an lvalue of std::remove_reference_t<EF> with no argument shall be well-formed. Member functions constructor constructs a new scope_fail (public member function) calls the exit function when the scope is exited via an exception if destructor the scope_fail is active, then destroys the scope_fail (public member function) operator= scope_fail is not assignable [deleted] (public member function) Modifiers release makes the scope_fail inactive (public member function) Deduction guides Notes Constructing a scope_fail of dynamic storage duration might lead to unexpected behavior. Constructing a scope_fail is constructed from another scope_fail created in a different thread might also lead to unexpected behavior since the count of uncaught exceptions obtained in different threads may be compared during the destruction. Example This section is incomplete Reason: no example See also scope_exit wraps a function object and invokes it on exiting the scope (class template) scope_success wraps a function object and invokes it on exiting the scope normally (class template) default_delete default deleter for unique_ptr (C++11) (class template) http://cppreference.com 2022.07.31 std::experi...::scope_fail(3)
NAME | Synopsis | Template parameters | Type requirements | Member functions | Modifiers | Notes | Example | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::experimental::scope_fail&sektion=3&manpath=FreeBSD+Ports+15.0>
