summaryrefslogtreecommitdiff
path: root/src/value.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/value.cpp')
-rw-r--r--src/value.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/value.cpp b/src/value.cpp
index f062e08a09..1f8e522e83 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -34,6 +34,22 @@ value& value::operator=(tag&& t)
return *this;
}
+value& value::operator=(const std::string& str)
+{
+ return *this = std::move(std::string(str));
+}
+
+value& value::operator=(std::string&& str)
+{
+ dynamic_cast<tag_string&>(*tag_).set(std::move(str));
+ return *this;
+}
+
+value::operator const std::string&() const
+{
+ return dynamic_cast<tag_string&>(*tag_).get();
+}
+
value::operator bool() const
{
return tag_ != nullptr;