]> git.lyx.org Git - lyx.git/blobdiff - src/support/RefChanger.h
Best to use braces when there are comments.
[lyx.git] / src / support / RefChanger.h
index baf3d840eb982b850065cc481d286870c71faebe..c279e4764ad324a63b7ed900359509d5b10bf57b 100644 (file)
@@ -46,18 +46,7 @@ private:
 };
 
 
-//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
@@ -66,21 +55,19 @@ template <typename X> RefChanger<X> make_save(X & ref)
        return make_unique<RevertibleRef<X>>(ref);
 }
 
-/// Temporarily assign value \param val to \param ref. If \param cond is false,
-/// then the assignation does not happen and the RefChanger starts disabled.
+/// Temporarily assign value val to reference ref.
+/// To apply the change conditionnally, one can write:
+///     Changer dummy = (cond) ? make_change(a, b) : Changer();
 template <typename X>
-RefChanger<X> make_change(X & ref, X const val, bool cond = true)
+RefChanger<X> make_change(X & ref, X const val)
 {
        auto rc = make_save(ref);
-       if (!cond)
-               rc->keep();
-       else
-               ref = val;
+       ref = val;
        return rc;
 }
 
 
-}
+} // namespace lyx
 
 
 #endif //LYX_REFCHANGER_H