summaryrefslogtreecommitdiff
path: root/project2/common/variableConvert.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'project2/common/variableConvert.cpp')
-rw-r--r--project2/common/variableConvert.cpp35
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);
}
+