userver: utils::ScopeGuard Class Reference
No Matches
utils::ScopeGuard Class Referencefinal

#include <userver/utils/scope_guard.hpp>

Detailed Description

a helper class to perform actions on scope exit

Usage example:

int x = 0;
utils::ScopeGuard d([&x] { x = 1; });
EXPECT_EQ(x, 0);
EXPECT_EQ(x, 1);
exception handling is done in such way that std::terminate will not be called: in the normal path of execution, exception from handler will propagate into client code, but if we leave scope because of an exception, handler's exception, if thrown, will be silenced and written into log to avoid std::terminate

Definition at line 28 of file scope_guard.hpp.

Public Types

using Callback = std::function<void()>

Public Member Functions

 ScopeGuard (Callback callback)
 ScopeGuard (const ScopeGuard &)=delete
 ScopeGuard (ScopeGuard &&)=delete
ScopeGuardoperator= (const ScopeGuard &)=delete
ScopeGuardoperator= (ScopeGuard &&)=delete
void Release () noexcept

Member Typedef Documentation

◆ Callback

using utils::ScopeGuard::Callback = std::function<void()>

Definition at line 30 of file scope_guard.hpp.

Constructor & Destructor Documentation

◆ ScopeGuard()

utils::ScopeGuard::ScopeGuard ( Callback callback)

Definition at line 32 of file scope_guard.hpp.

◆ ~ScopeGuard()

utils::ScopeGuard::~ScopeGuard ( )

Definition at line 42 of file scope_guard.hpp.

Member Function Documentation

◆ Release()

void utils::ScopeGuard::Release ( )

Definition at line 60 of file scope_guard.hpp.

The documentation for this class was generated from the following file: