diff options
| author | ljfa-ag <ljfa-ag@web.de> | 2015-07-07 17:24:52 +0200 |
|---|---|---|
| committer | ljfa-ag <ljfa-ag@web.de> | 2015-07-07 17:24:52 +0200 |
| commit | 780a63c33d80a961002859c13ce79d1ec1db9216 (patch) | |
| tree | ef4a5d48b77570b8367f12c34258b0b7a479e6ed | |
| parent | 9ed28be29dafc97a68098dbf94e29c0599376738 (diff) | |
| download | Project-Tick-780a63c33d80a961002859c13ce79d1ec1db9216.tar.gz Project-Tick-780a63c33d80a961002859c13ce79d1ec1db9216.zip | |
Correctly implement value_initializer
| -rw-r--r-- | include/value_initializer.h | 8 | ||||
| -rw-r--r-- | src/value_initializer.cpp | 5 |
2 files changed, 9 insertions, 4 deletions
diff --git a/include/value_initializer.h b/include/value_initializer.h index 57e78ec518..8f0ebaf60e 100644 --- a/include/value_initializer.h +++ b/include/value_initializer.h @@ -45,11 +45,13 @@ public: value_initializer(std::string&& str); value_initializer(const char* str); - value& get() const; + value& get(); + const value& get() const; + operator value&(); + operator const value&() const; private: - mutable value value_; //FIXME: std::initializer_list objects are constant. - //This solution will probably fail + value value_; }; } diff --git a/src/value_initializer.cpp b/src/value_initializer.cpp index 8d57933e09..3de74da717 100644 --- a/src/value_initializer.cpp +++ b/src/value_initializer.cpp @@ -37,6 +37,9 @@ value_initializer::value_initializer(const std::string& str): value_(tag_string( value_initializer::value_initializer(std::string&& str): value_(tag_string(std::move(str))) {} value_initializer::value_initializer(const char* str): value_(tag_string(str)) {} -value& value_initializer::get() const { return value_; } +value& value_initializer::get() { return value_; } +const value& value_initializer::get() const { return value_; } +value_initializer::operator value&() { return value_; } +value_initializer::operator const value&() const { return value_; } } |
