Files
Sourcetrail/src/lib/utility/ScopedSwitcher.h
2019-11-18 17:07:20 +01:00

26 lines
367 B
C++

#ifndef SCOPED_SWITCHER_H
#define SCOPED_SWITCHER_H
template <typename T>
class ScopedSwitcher
{
public:
ScopedSwitcher(T& var): m_var(&var), m_origVal(var) {}
ScopedSwitcher(T& var, T tempVal): m_var(&var), m_origVal(var)
{
var = tempVal;
}
~ScopedSwitcher()
{
*m_var = m_origVal;
}
private:
T* m_var;
T m_origVal;
};
#endif // SCOPED_SWITCHER_H