};
-//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