32#ifndef DRAIN_CONVERT_FUNDAMENTAL
33#define DRAIN_CONVERT_FUNDAMENTAL
51 static void to(
const T & src, T & dst){
56 static void to(
const T & src, U & dst){
57 std::stringstream sstr;
58 sstr << std::boolalpha << src;
67 static void to(
const std::string & src, std::string & dst){ dst = src; }
69 static void to(
const std::string & src,
bool & dst){
70 dst = (src ==
"true" || src ==
"True" || src ==
"TRUE");
74 static void to(
const std::string & src, U & dst){
75 std::stringstream sstr(src);
84 static void to(
const char * src, U & dst){
93 static void to(
const char * src, U & dst){
102 static void to(
const bool & src,
bool & dst){ dst = src; }
104 static void to(
const bool & src, std::string & dst){ dst = src ?
"true" :
"false"; }
108 typename std::enable_if<std::is_arithmetic<U>::value && !std::is_same<U, bool>::value>::type
109 to(
const bool & src, U & dst){
110 dst =
static_cast<U
>(src);
129 template <
class T1,
class T2>
130 static void convert(
const T1 & src, T2 & dst){
135 static void convert(
const char *src, T2 & dst){
142 typename std::enable_if<std::is_arithmetic<T>::value && !std::is_same<T, bool>::value>::type
149 static void convert(
const T & src, std::ostream & ostr,
const char * format){
150 std::stringstream sstr(src);
155 static void convert(
const T & src, std::ostream & ostr,
const std::string & format){
156 convert(src, ostr, format.c_str());
180 void convert(
const char * src, T & dst){
181 std::stringstream sstr(src);
189 void convert(
const T & src, D & dst){
196 void convert(
const S & src, T & dst){
205 std::stringstream sstr;
214 std::stringstream sstr;
Utility class with static conversions.
Definition Convert.h:169
static void convertTo(const S &src, T &dst)
Convert with cast target type.
Definition Convert.h:213
static void convert(const T &src, T &dst)
Trivial case: source and destination are of same class.
Definition Convert.h:175
static void convertFrom(const T &src, D &dst)
Convert with cast source type.
Definition Convert.h:204
static void convert(const T1 &src, T2 &dst)
General case: dispatch to Converter<T1> traits.
Definition Convert.h:130
static std::enable_if< std::is_arithmetic< T >::value &&!std::is_same< T, bool >::value >::type convert(const T &src, bool &dst)
Numeric -> bool: zero is false, any other value is true.
Definition Convert.h:143
static void convert(const T &src, std::ostream &ostr, const char *format)
Formatted output.
Definition Convert.h:149
Definition DataSelector.cpp:1277
Utility class with static conversions.
Definition Convert.h:49