Go to the source code of this file.
Classes | |
class | MR::detail::ScopeGuard< F > |
struct | MR::detail::MakeScopeGuard< T > |
Namespaces | |
namespace | MR |
namespace | MR::detail |
Macros | |
#define | MR_FINALLY DETAIL_MR_FINALLY( ScopeGuard ) |
Usage: MR_FINALLY{...}; . Runs the code in braces when exiting the current scope, either normally or via an exception. | |
#define | MR_FINALLY_ON_SUCCESS MR_FINALLY |
When exceptions are disabled, this is equivalent to MR_FINALLY . | |
#define | MR_FINALLY_ON_THROW (void)[&]() |
When exceptions are disabled, this is a noop. | |
#define | DETAIL_MR_FINALLY(type_) auto MR_CONCAT( _mrScopeGuard, __COUNTER__ ) = ::MR::detail::MakeScopeGuard<::MR::detail::type_>{} ->* [&]() -> void |
#define DETAIL_MR_FINALLY | ( | type_ | ) | auto MR_CONCAT( _mrScopeGuard, __COUNTER__ ) = ::MR::detail::MakeScopeGuard<::MR::detail::type_>{} ->* [&]() -> void |
#define MR_FINALLY DETAIL_MR_FINALLY( ScopeGuard ) |
Usage: MR_FINALLY{...};
. Runs the code in braces when exiting the current scope, either normally or via an exception.
#define MR_FINALLY_ON_SUCCESS MR_FINALLY |
When exceptions are disabled, this is equivalent to MR_FINALLY
.
#define MR_FINALLY_ON_THROW (void)[&]() |
When exceptions are disabled, this is a noop.