summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/optional_bool.cpp4
-rw-r--r--src/utils/optional_bool.hpp48
2 files changed, 18 insertions, 34 deletions
diff --git a/src/utils/optional_bool.cpp b/src/utils/optional_bool.cpp
index 56fdca2..1d1c375 100644
--- a/src/utils/optional_bool.cpp
+++ b/src/utils/optional_bool.cpp
@@ -1,8 +1,8 @@
#include <utils/optional_bool.hpp>
-std::ostream& operator<<(std::ostream& os, const OptionalBool& o)
+std::ostream& operator<<(std::ostream& os, const std::optional<bool>& o)
{
- os << o.to_string();
+ os << std::to_string(o);
return os;
}
diff --git a/src/utils/optional_bool.hpp b/src/utils/optional_bool.hpp
index 867aca2..c652ed3 100644
--- a/src/utils/optional_bool.hpp
+++ b/src/utils/optional_bool.hpp
@@ -1,37 +1,21 @@
#pragma once
+#include <optional>
+
#include <string>
-struct OptionalBool
+namespace std
{
- OptionalBool() = default;
-
- OptionalBool(bool value):
- is_set(true), value(value) {}
-
- void set_value(bool value)
- {
- this->is_set = true;
- this->value = value;
- }
-
- void unset()
- {
- this->is_set = false;
- }
-
- std::string to_string() const
- {
- if (this->is_set == false)
- return "unset";
- else if (this->value)
- return "true";
- else
- return "false";
- }
-
- bool is_set{false};
- bool value{false};
-};
-
-std::ostream& operator<<(std::ostream& os, const OptionalBool& o);
+inline
+std::string to_string(const std::optional<bool> b)
+{
+ if (!b)
+ return "unset";
+ else if (*b)
+ return "true";
+ else
+ return "false";
+}
+}
+
+std::ostream& operator<<(std::ostream& os, const std::optional<bool>& o);