no need to specialize ToString for objects that provide a range interface (works by default)

master
Daniel Kolesa 2015-05-31 16:44:35 +01:00
parent b00ebebf10
commit 6c3db69741
2 changed files with 0 additions and 26 deletions

View File

@ -61,13 +61,6 @@ namespace octa {
swap_ranges(each(), v.each());
}
String to_string() const {
String ret("{");
ret += concat(each(), ", ", ToString<T>());
ret += "}";
return move(ret);
}
T p_buf[(N > 0) ? N : 1];
};
}

View File

@ -331,17 +331,6 @@ namespace octa {
}
};
template<typename T> struct ToString<Vector<T>> {
typedef const Vector<T> &ArgType;
typedef String ResultType;
String operator()(ArgType v) {
String ret("{");
ret += concat(v.each(), ", ", ToString<RemoveCv<RemoveReference<T>>>());
ret += "}";
return move(ret);
}
};
template<typename T, typename U> struct ToString<Pair<T, U>> {
typedef const Pair<T, U> &ArgType;
typedef String ResultType;
@ -355,14 +344,6 @@ namespace octa {
}
};
template<typename T> struct ToString<initializer_list<T>> {
typedef initializer_list<T> ArgType;
typedef String ResultType;
String operator()(ArgType il) {
return move(ToString<decltype(each(il))>()(each(il)));
}
};
template<typename T>
String to_string(const T &v) {
return move(ToString<RemoveCv<RemoveReference<T>>>()(v));