liblcf
ScopeGuard< F > Class Template Reference

#include <scope_guard.h>

+ Collaboration diagram for ScopeGuard< F >:

Public Member Functions

 ScopeGuard ()=default
 
 ScopeGuard (const F &f)
 
 ScopeGuard (F &&f)
 
 ScopeGuard (const ScopeGuard &)=delete
 
ScopeGuardoperator= (const ScopeGuard &)=delete
 
 ScopeGuard (ScopeGuard &&o)
 
ScopeGuardoperator= (ScopeGuard &&)=delete
 
 ~ScopeGuard ()
 
void Fire () noexcept
 
void Dismiss () noexcept
 
bool IsActive () noexcept
 

Private Attributes

_f
 
bool _active = false
 

Detailed Description

template<typename F>
class ScopeGuard< F >

Definition at line 15 of file scope_guard.h.

Constructor & Destructor Documentation

◆ ScopeGuard() [1/5]

template<typename F >
ScopeGuard< F >::ScopeGuard ( )
default

◆ ScopeGuard() [2/5]

template<typename F >
ScopeGuard< F >::ScopeGuard ( const F &  f)
inlineexplicit

Definition at line 18 of file scope_guard.h.

◆ ScopeGuard() [3/5]

template<typename F >
ScopeGuard< F >::ScopeGuard ( F &&  f)
inlineexplicit

Definition at line 19 of file scope_guard.h.

◆ ScopeGuard() [4/5]

template<typename F >
ScopeGuard< F >::ScopeGuard ( const ScopeGuard< F > &  )
delete

◆ ScopeGuard() [5/5]

template<typename F >
ScopeGuard< F >::ScopeGuard ( ScopeGuard< F > &&  o)
inline

Definition at line 24 of file scope_guard.h.

◆ ~ScopeGuard()

template<typename F >
ScopeGuard< F >::~ScopeGuard ( )
inline

Definition at line 28 of file scope_guard.h.

References ScopeGuard< F >::Fire().

+ Here is the call graph for this function:

Member Function Documentation

◆ Dismiss()

template<typename F >
void ScopeGuard< F >::Dismiss ( )
inlinenoexcept

Definition at line 52 of file scope_guard.h.

References ScopeGuard< F >::_active.

Referenced by ScopeGuard< F >::Fire().

+ Here is the caller graph for this function:

◆ Fire()

template<typename F >
void ScopeGuard< F >::Fire ( )
inlinenoexcept

Definition at line 44 of file scope_guard.h.

References ScopeGuard< F >::_active, ScopeGuard< F >::_f, and ScopeGuard< F >::Dismiss().

Referenced by ScopeGuard< F >::~ScopeGuard().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ IsActive()

template<typename F >
bool ScopeGuard< F >::IsActive ( )
inlinenoexcept

Definition at line 57 of file scope_guard.h.

References ScopeGuard< F >::_active.

◆ operator=() [1/2]

template<typename F >
ScopeGuard& ScopeGuard< F >::operator= ( const ScopeGuard< F > &  )
delete

◆ operator=() [2/2]

template<typename F >
ScopeGuard& ScopeGuard< F >::operator= ( ScopeGuard< F > &&  )
delete

Member Data Documentation

◆ _active

template<typename F >
bool ScopeGuard< F >::_active = false
private

◆ _f

template<typename F >
F ScopeGuard< F >::_f
private

Definition at line 34 of file scope_guard.h.

Referenced by ScopeGuard< F >::Fire().


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