summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/value.h1
-rw-r--r--src/value.cpp4
2 files changed, 5 insertions, 0 deletions
diff --git a/include/value.h b/include/value.h
index a46d79e7c5..3aa056b35c 100644
--- a/include/value.h
+++ b/include/value.h
@@ -42,6 +42,7 @@ class value
public:
value() {}
explicit value(std::unique_ptr<tag>&& t);
+ explicit value(tag&& t);
//Movable but not (implicitly) copyable
value(const value&) = delete;
diff --git a/src/value.cpp b/src/value.cpp
index 8196ce16e2..ae40587324 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -28,6 +28,10 @@ value::value(std::unique_ptr<tag>&& t):
tag_(std::move(t))
{}
+value::value(tag&& t):
+ tag_(std::move(t).move_clone())
+{}
+
value& value::operator=(tag&& t)
{
set(std::move(t));