32 lines
377 B
C++
32 lines
377 B
C++
#pragma once
|
|
|
|
template <class T>
|
|
class PushMemVar
|
|
{
|
|
public:
|
|
|
|
PushMemVar(T &var, const T &val);
|
|
|
|
~PushMemVar() ;
|
|
|
|
protected:
|
|
|
|
T *m_pVarBackup;
|
|
|
|
T m_valBackup;
|
|
};
|
|
|
|
template <class T>
|
|
PushMemVar<T>::PushMemVar(T &var, const T &val)
|
|
{
|
|
m_pVarBackup = &var;
|
|
m_valBackup = var;
|
|
var = val;
|
|
}
|
|
|
|
template <class T>
|
|
PushMemVar<T>::~PushMemVar()
|
|
{
|
|
*m_pVarBackup = m_valBackup;
|
|
}
|