summaryrefslogtreecommitdiff
path: root/src/utils/optional_bool.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/optional_bool.hpp')
-rw-r--r--src/utils/optional_bool.hpp48
1 files changed, 16 insertions, 32 deletions
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);