summaryrefslogtreecommitdiff
path: root/src/value.cpp
diff options
context:
space:
mode:
authorljfa-ag <ljfa-ag@web.de>2015-07-07 17:16:25 +0200
committerljfa-ag <ljfa-ag@web.de>2015-07-07 17:16:25 +0200
commitfd4942b6f56227e9d90ad046ae011bc9db05eae0 (patch)
treefd319644ae5d7bb52537270034bb0c3035908dc9 /src/value.cpp
parent49bcfa77e1252fb9e4e55d6a5f97a420f6de8fc4 (diff)
downloadProject-Tick-fd4942b6f56227e9d90ad046ae011bc9db05eae0.tar.gz
Project-Tick-fd4942b6f56227e9d90ad046ae011bc9db05eae0.zip
Make value copyable (after all)
Diffstat (limited to 'src/value.cpp')
-rw-r--r--src/value.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/value.cpp b/src/value.cpp
index d6c276471a..de173a94c2 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -32,6 +32,19 @@ value::value(tag&& t):
tag_(std::move(t).move_clone())
{}
+value::value(const value& rhs):
+ tag_(rhs.tag_ ? rhs.tag_->clone() : nullptr)
+{}
+
+value& value::operator=(const value& rhs)
+{
+ if(this != &rhs)
+ {
+ tag_ = rhs.tag_ ? rhs.tag_->clone() : nullptr;
+ }
+ return *this;
+}
+
value& value::operator=(tag&& t)
{
set(std::move(t));
@@ -356,11 +369,6 @@ value& value::operator[](const char* key)
return (*this)[std::string(key)];
}
-value value::copy() const
-{
- return value(tag_->clone());
-}
-
std::unique_ptr<tag>& value::get_ptr()
{
return tag_;