aboutsummaryrefslogtreecommitdiff
path: root/src/toml11/toml/storage.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/toml11/toml/storage.hpp')
-rw-r--r--src/toml11/toml/storage.hpp43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/toml11/toml/storage.hpp b/src/toml11/toml/storage.hpp
deleted file mode 100644
index 202f9035f..000000000
--- a/src/toml11/toml/storage.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright Toru Niina 2017.
-// Distributed under the MIT License.
-#ifndef TOML11_STORAGE_HPP
-#define TOML11_STORAGE_HPP
-#include "utility.hpp"
-
-namespace toml
-{
-namespace detail
-{
-
-// this contains pointer and deep-copy the content if copied.
-// to avoid recursive pointer.
-template<typename T>
-struct storage
-{
- using value_type = T;
-
- explicit storage(value_type const& v): ptr(toml::make_unique<T>(v)) {}
- explicit storage(value_type&& v): ptr(toml::make_unique<T>(std::move(v))) {}
- ~storage() = default;
- storage(const storage& rhs): ptr(toml::make_unique<T>(*rhs.ptr)) {}
- storage& operator=(const storage& rhs)
- {
- this->ptr = toml::make_unique<T>(*rhs.ptr);
- return *this;
- }
- storage(storage&&) = default;
- storage& operator=(storage&&) = default;
-
- bool is_ok() const noexcept {return static_cast<bool>(ptr);}
-
- value_type& value() & noexcept {return *ptr;}
- value_type const& value() const& noexcept {return *ptr;}
- value_type&& value() && noexcept {return std::move(*ptr);}
-
- private:
- std::unique_ptr<value_type> ptr;
-};
-
-} // detail
-} // toml
-#endif// TOML11_STORAGE_HPP