atesdal

Untitled

Nov 9th, 2023
1,227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.42 KB | None | 0 0
  1. template<typename T, typename SetFunc, typename SetFuncParam>
  2. struct TempSetting
  3. {
  4.   TempSetting(T* attr, SetFunc f, SetFuncParam init, SetFuncParam end)
  5.     : m_attr(attr)
  6.     , m_func(f)
  7.     , m_init(init)
  8.     , m_end(end)
  9.   {
  10.     ((*m_attr).*m_func)(m_init);
  11.   }
  12.  
  13.   ~TempSetting()
  14.   {
  15.     ((*m_attr).*m_func)(m_end);
  16.   }
  17.  
  18. private:
  19.   T* m_attr{ nullptr };
  20.   SetFunc m_func;
  21.   SetFuncParam m_init, m_end;
  22. };
Advertisement