#ifndef H_CORAL_RESTORE_VALUE
#define H_CORAL_RESTORE_VALUE

namespace coral {

	template <class T>
	class restore_value : public noncopy {
		T& m_restore;
		const T& m_value;
	public:
		restore_value(T& restore,
			      const T& value) : m_restore(restore),
						m_value(value) {
			;
		}
		~restore_value() {
			m_restore = m_value;
		}
	};

}


#endif
