header_utils
Loading...
Searching...
No Matches
ghassanpl::scope_counter< T > Struct Template Reference

TODO: atomic_scoped_value_change. More...

#include <scope.h>

Public Member Functions

 scope_counter (T &ref) noexcept(noexcept(++ref))
 
 scope_counter (const scope_counter &)=delete
 
 scope_counter (scope_counter &&other) noexcept
 
scope_counteroperator= (const scope_counter &)=delete
 
scope_counteroperator= (scope_counter &&)=delete
 
bool valid () const noexcept
 
void release () const noexcept
 

Detailed Description

template<typename T>
struct ghassanpl::scope_counter< T >

TODO: atomic_scoped_value_change.

A RAII class that increments a value on construction and decrements it on destruction.

Definition at line 399 of file scope.h.

Constructor & Destructor Documentation

◆ scope_counter() [1/2]

template<typename T >
ghassanpl::scope_counter< T >::scope_counter ( T &  ref)
inlinenoexcept

Definition at line 401 of file scope.h.

◆ scope_counter() [2/2]

template<typename T >
ghassanpl::scope_counter< T >::scope_counter ( scope_counter< T > &&  other)
inlinenoexcept

Definition at line 408 of file scope.h.

◆ ~scope_counter()

template<typename T >
ghassanpl::scope_counter< T >::~scope_counter ( )
inlinenoexcept

Definition at line 417 of file scope.h.

Member Function Documentation

◆ release()

template<typename T >
void ghassanpl::scope_counter< T >::release ( ) const
inlinenoexcept

Definition at line 423 of file scope.h.

◆ valid()

template<typename T >
bool ghassanpl::scope_counter< T >::valid ( ) const
inlinenoexcept

Definition at line 415 of file scope.h.