diff options
Diffstat (limited to 'project2/common/variableConvert.cpp')
| -rw-r--r-- | project2/common/variableConvert.cpp | 35 |
1 files changed, 5 insertions, 30 deletions
diff --git a/project2/common/variableConvert.cpp b/project2/common/variableConvert.cpp index 2c6e49a..b3d3432 100644 --- a/project2/common/variableConvert.cpp +++ b/project2/common/variableConvert.cpp @@ -1,4 +1,5 @@ #include <pch.hpp> +#define BOOST_NO_CXX14_DECLTYPE_AUTO #include "variables.h" #include "exceptions.h" #include <boost/lexical_cast.hpp> @@ -69,30 +70,6 @@ class ConvertVisitorStdString : public boost::static_visitor<const std::string & private: const VariableType * var; }; -// Convert to char * (with std::string storage) -class ConvertVisitorCharStar : public boost::static_visitor<const char *> { - public: - ConvertVisitorCharStar(const VariableType * v) : var(v) { - } - const char * operator()(const Glib::ustring & r) const { - return r.c_str(); - } - const char * operator()(const boost::posix_time::time_duration & r) const { - CONVERTF(const Glib::ustring, boost::posix_time::to_simple_string, c_str); - } - const char * operator()(const boost::posix_time::ptime & r) const { - CONVERTF(const Glib::ustring, boost::posix_time::to_iso_extended_string, c_str); - } - const char * operator()(const Null &) const { - return NULL; - } - template <typename T> - const char * operator()(const T & r) const { - CONVERTF(const Glib::ustring, boost::lexical_cast<Glib::ustring>, c_str); - } - private: - const VariableType * var; -}; // Convert to numeric type template <typename DestType> class ConvertVisitor : public boost::static_visitor<DestType> { @@ -193,6 +170,7 @@ class ConvertVisitorBool : public boost::static_visitor<bool> { } const VariableType * var; }; + VariableType::operator const Glib::ustring &() const { return boost::apply_visitor(ConvertVisitorGlibUstring(this), *this); @@ -201,13 +179,9 @@ VariableType::operator const std::string &() const { return boost::apply_visitor(ConvertVisitorStdString(this), *this); } -VariableType::operator const char *() const +VariableType::operator std::string_view() const { - return boost::apply_visitor(ConvertVisitorCharStar(this), *this); -} -VariableType::operator const unsigned char *() const -{ - return reinterpret_cast<const unsigned char *>(boost::apply_visitor(ConvertVisitorCharStar(this), *this)); + return boost::apply_visitor(ConvertVisitorStdString(this), *this); } VariableType::operator int() const { @@ -237,3 +211,4 @@ VariableType::operator bool() const { return boost::apply_visitor(ConvertVisitorBool(this), *this); } + |
