![]() |
boost::scope::defer_guard — Defer guard that invokes a function upon leaving the scope.
// In header: <boost/scope/defer.hpp> template<typename Func> class defer_guard { public: // public member functions template<typename F> defer_guard(F &&); defer_guard(defer_guard const &) = delete; defer_guard & operator=(defer_guard const &) = delete; ~defer_guard(); };
The scope guard wraps a function object callable with no arguments that can be one of:
A user-defined class with a public operator()
.
An lvalue reference to such class.
An lvalue reference or pointer to function taking no arguments.
The defer guard unconditionally invokes the wrapped function object on destruction.
defer_guard
public member functionstemplate<typename F> defer_guard(F && func);Constructs a defer guard with a given callable function object.
Requires: Func
is constructible from func.
Effects: If Func
is nothrow constructible from F&&
then constructs Func
from std::forward< F >(func)
, otherwise constructs from func
.
If Func
construction throws, invokes func before returning with the exception.
Throws: Nothing, unless construction of the function object throws.
Parameters: |
|
defer_guard(defer_guard const &) = delete;
defer_guard & operator=(defer_guard const &) = delete;
~defer_guard();Invokes the wrapped callable function object and destroys the callable.
Throws: Nothing, unless invoking the callable throws.