//
~RevertibleRef() { revert(); }
//
- void revert() { if (enabled) { enabled = false; ref = old; } }
+ void revert() override { if (enabled) { enabled = false; ref = old; } }
//
- void keep() { enabled = false; }
+ void keep() override { enabled = false; }
//
X & ref;
X const old;
};
-//for gcc 4.6
-#if defined(__GNUC__) && (__GNUC__ == 4) && (__GNUC_MINOR__ == 6)
-template <typename X>
-struct RefChanger : unique_ptr<RevertibleRef<X>>
-{
- RefChanger(unique_ptr<RevertibleRef<X>> p)
- : unique_ptr<RevertibleRef<X>>(move(p))
- {}
-};
-#else
template <typename X> using RefChanger = unique_ptr<RevertibleRef<X>>;
-#endif
/// Saves the value of \param ref in a movable object