summaryrefslogtreecommitdiff
path: root/include/mbgl/util/optional.hpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-12-04 18:29:42 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-12-04 20:02:50 +0100
commitabafb52f37beb5659efc2105ccd1568e1f754898 (patch)
tree6a60636d3497560ca61e5aae5f6d7061c4f18553 /include/mbgl/util/optional.hpp
parentbff6aeb4da41dee1f5f1cfa0be81b6c257257253 (diff)
downloadqtlocation-mapboxgl-abafb52f37beb5659efc2105ccd1568e1f754898.tar.gz
make most headers private
Diffstat (limited to 'include/mbgl/util/optional.hpp')
-rw-r--r--include/mbgl/util/optional.hpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/include/mbgl/util/optional.hpp b/include/mbgl/util/optional.hpp
deleted file mode 100644
index 133e2c8f97..0000000000
--- a/include/mbgl/util/optional.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef MAPBOX_UTIL_OPTIONAL_HPP
-#define MAPBOX_UTIL_OPTIONAL_HPP
-
-#include <type_traits>
-
-#include "variant.hpp"
-
-namespace mapbox
-{
-namespace util
-{
-
-template <typename T> class optional
-{
- static_assert(!std::is_reference<T>::value, "optional doesn't support references");
-
- struct none_type
- {
- };
-
- variant<none_type, T> variant_;
-
- public:
- optional() = default;
-
- optional(optional const &rhs)
- {
- if (this != &rhs)
- { // protect against invalid self-assignment
- variant_ = rhs.variant_;
- }
- }
-
- optional(T const &v) { variant_ = v; }
-
- explicit operator bool() const noexcept { return variant_.template is<T>(); }
-
- T const &get() const { return variant_.template get<T>(); }
- T &get() { return variant_.template get<T>(); }
-
- T const &operator*() const { return this->get(); }
- T operator*() { return this->get(); }
-
- optional &operator=(T const &v)
- {
- variant_ = v;
- return *this;
- }
-
- optional &operator=(optional const &rhs)
- {
- if (this != &rhs)
- {
- variant_ = rhs.variant_;
- }
- return *this;
- }
-
- template <typename... Args> void emplace(Args &&... args)
- {
- variant_ = T{std::forward<Args>(args)...};
- }
-
- void reset() { variant_ = none_type{}; }
-};
-}
-}
-
-#endif