]> git.stg.codes - stg.git/blobdiff - include/stg/resetable.h
Lower C++ version, minmal GCC version, compiler-related flags.
[stg.git] / include / stg / resetable.h
index 8a6ad27c13584e04ca05c98caae867e97d18699a..e7914efd3e90fdfc958025ac0317589d06735163 100644 (file)
@@ -16,19 +16,7 @@ public:
     typedef T value_type;
 
     RESETABLE() : value(), is_set(false) {}
     typedef T value_type;
 
     RESETABLE() : value(), is_set(false) {}
-    RESETABLE(const T & v) : value(v), is_set(true) {}
-
-    RESETABLE(const RESETABLE<T> & rvalue)
-        : value(rvalue.value),
-          is_set(rvalue.is_set)
-    {}
-
-    RESETABLE<T> & operator=(const RESETABLE<T> & rhs)
-    {
-        value = rhs.value;
-        is_set = rhs.is_set;
-        return *this;
-    }
+    explicit RESETABLE(const T & v) : value(v), is_set(true) {}
 
     RESETABLE<T> & operator=(const T & rhs)
     {
 
     RESETABLE<T> & operator=(const T & rhs)
     {
@@ -50,6 +38,11 @@ public:
             is_set = true;
         }
     }
             is_set = true;
         }
     }
+    void maybeSet(value_type& dest) const
+    {
+        if (is_set)
+            dest = value;
+    }
 
 private:
     value_type value;
 
 private:
     value_type value;