aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/cxx/rule.cxx1
-rw-r--r--build/utility29
2 files changed, 1 insertions, 29 deletions
diff --git a/build/cxx/rule.cxx b/build/cxx/rule.cxx
index f05370d..095c98a 100644
--- a/build/cxx/rule.cxx
+++ b/build/cxx/rule.cxx
@@ -12,6 +12,7 @@
#include <butl/process>
#include <butl/fdstream>
+#include <butl/optional>
#include <build/scope>
#include <build/variable>
diff --git a/build/utility b/build/utility
index db8e94c..87a0e44 100644
--- a/build/utility
+++ b/build/utility
@@ -38,35 +38,6 @@ namespace build
bool operator() (const P& x, const P& y) const {return *x < *y;}
};
- // Simple optional class template while waiting for std::optional.
- //
- template <typename T>
- class optional
- {
- public:
- typedef T value_type;
-
- optional (): null_ (true) {}
- optional (const T& v): value_ (v), null_ (false) {}
- optional& operator= (const T& v) {value_ = v; null_ = false; return *this;}
-
- T& value () {return value_;}
- const T& value () const {return value_;}
-
- T* operator-> () {return &value_;}
- const T* operator-> () const {return &value_;}
-
- T& operator* () {return value_;}
- const T& operator* () const {return value_;}
-
- explicit operator bool () const {return !null_;}
-
- private:
- T value_;
- bool null_;
- };
-
-
// Support for reverse iteration using range-based for-loop:
//
// for (... : reverse_iterate (x)) ...