diff options
| -rw-r--r-- | src/value.cpp | 16 |
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; |
