diff options
| author | ljfa-ag <ljfa-ag@web.de> | 2015-07-02 09:04:06 +0200 |
|---|---|---|
| committer | ljfa-ag <ljfa-ag@web.de> | 2015-07-02 09:04:06 +0200 |
| commit | ba86b862d679b358c52aa925044365c8d6057e08 (patch) | |
| tree | 97179b40a97d70c352cc55301e6460e020f1c009 /src/value.cpp | |
| parent | 452a495e3c8cc09525dca777f0ead6f24b904a1c (diff) | |
| download | Project-Tick-ba86b862d679b358c52aa925044365c8d6057e08.tar.gz Project-Tick-ba86b862d679b358c52aa925044365c8d6057e08.zip | |
Add get/set_ptr and operator bool to value
Diffstat (limited to 'src/value.cpp')
| -rw-r--r-- | src/value.cpp | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/src/value.cpp b/src/value.cpp index a5f8e3c894..f062e08a09 100644 --- a/src/value.cpp +++ b/src/value.cpp @@ -28,16 +28,30 @@ value::value(std::unique_ptr<tag>&& t): tag_(std::move(t)) {} -value& value::operator=(std::unique_ptr<tag>&& t) +value& value::operator=(tag&& t) { - tag_ = std::move(t); + tag_->assign(std::move(t)); return *this; } -value& value::operator=(tag&& t) +value::operator bool() const { - tag_->assign(std::move(t)); - return *this; + return tag_ != nullptr; +} + +std::unique_ptr<tag>& value::get_ptr() +{ + return tag_; +} + +const std::unique_ptr<tag>& value::get_ptr() const +{ + return tag_; +} + +void value::set_ptr(std::unique_ptr<tag>&& t) +{ + tag_ = std::move(t); } tag_type value::get_type() const |
