00001
00020 #ifndef INC_MI32_SAVEREST_H
00021 #define INC_MI32_SAVEREST_H
00022
00025
00026 template <class _CT>
00027 class SAVERESTORE {
00028 public:
00029
00030
00031
00033 explicit SAVERESTORE (
00034 _CT& item
00035 ) :
00036 m_item(item),
00037 m_origval(item)
00038 {}
00039
00041 SAVERESTORE (
00042 _CT& item,
00043 _CT tempval
00044 ) :
00045 m_item(item),
00046 m_origval(item)
00047 {
00048 item = tempval;
00049 }
00050
00052 ~SAVERESTORE (
00053 ) {
00054 m_item = m_origval;
00055 }
00056
00057 private:
00058 #ifndef GENERATING_DOXYGEN_OUTPUT
00059 _CT& m_item;
00060 _CT m_origval;
00061 #endif // GENERATING_DOXYGEN_OUTPUT
00062 };
00063
00064 #endif