summaryrefslogtreecommitdiff
path: root/src/value.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/value.cpp')
-rw-r--r--src/value.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/value.cpp b/src/value.cpp
index 77358a9182..90a67b79f3 100644
--- a/src/value.cpp
+++ b/src/value.cpp
@@ -30,10 +30,35 @@ value::value(std::unique_ptr<tag>&& t):
value& value::operator=(tag&& t)
{
- tag_->assign(std::move(t));
+ set(std::move(t));
return *this;
}
+void value::set(tag&& t)
+{
+ tag_->assign(std::move(t));
+}
+
+value::operator tag&()
+{
+ return get();
+}
+
+value::operator const tag&() const
+{
+ return get();
+}
+
+tag& value::get()
+{
+ return *tag_;
+}
+
+const tag& value::get() const
+{
+ return *tag_;
+}
+
//Primitive assignment
//FIXME: Make this less copypaste!
value& value::operator=(int8_t val)