Audacity 3.2.0
Public Member Functions | List of all members
ValueRestorer< T > Class Template Reference

Set a variable temporarily in a scope. More...

#include <MemoryX.h>

Inheritance diagram for ValueRestorer< T >:
[legend]
Collaboration diagram for ValueRestorer< T >:
[legend]

Public Member Functions

 ValueRestorer (T &var)
 
 ValueRestorer (T &var, const T &newValue)
 
 ValueRestorer (ValueRestorer &&that)
 
ValueRestoreroperator= (ValueRestorer &&that)
 

Detailed Description

template<typename T>
class ValueRestorer< T >

Set a variable temporarily in a scope.

Definition at line 212 of file MemoryX.h.

Constructor & Destructor Documentation

◆ ValueRestorer() [1/3]

template<typename T >
ValueRestorer< T >::ValueRestorer ( T &  var)
inlineexplicit

Definition at line 217 of file MemoryX.h.

218 : std::unique_ptr< T, RestoreValue<T> >( &var, { var } )
219 {}

◆ ValueRestorer() [2/3]

template<typename T >
ValueRestorer< T >::ValueRestorer ( T &  var,
const T &  newValue 
)
inlineexplicit

Definition at line 220 of file MemoryX.h.

221 : std::unique_ptr< T, RestoreValue<T> >( &var, { var } )
222 { var = newValue; }

◆ ValueRestorer() [3/3]

template<typename T >
ValueRestorer< T >::ValueRestorer ( ValueRestorer< T > &&  that)
inline

Definition at line 223 of file MemoryX.h.

224 : std::unique_ptr < T, RestoreValue<T> > ( std::move(that) ) {};

Member Function Documentation

◆ operator=()

template<typename T >
ValueRestorer & ValueRestorer< T >::operator= ( ValueRestorer< T > &&  that)
inline

Definition at line 225 of file MemoryX.h.

226 {
227 if (this != &that)
228 std::unique_ptr < T, RestoreValue<T> >::operator=(std::move(that));
229 return *this;
230 }

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