Added support for custom types with 'toString' function
This commit is contained in:
parent
096c4051b2
commit
de7d12974f
@ -629,12 +629,19 @@ inline typename std::enable_if<
|
|||||||
|
|
||||||
template <typename C, typename T, typename Char = typename C::char_type>
|
template <typename C, typename T, typename Char = typename C::char_type>
|
||||||
inline typename std::enable_if<
|
inline typename std::enable_if<
|
||||||
|
!std::is_same<decltype(sizeof(&T::toString)), size_t>::value &&
|
||||||
!convert_to_int<T, Char>::value &&
|
!convert_to_int<T, Char>::value &&
|
||||||
!std::is_convertible<T, basic_string_view<Char>>::value &&
|
!std::is_convertible<T, basic_string_view<Char>>::value &&
|
||||||
!std::is_convertible<T, std::basic_string<Char>>::value,
|
!std::is_convertible<T, std::basic_string<Char>>::value,
|
||||||
typed_value<C, custom_type>>::type
|
typed_value<C, custom_type>>::type
|
||||||
make_value(const T &val) { return val; }
|
make_value(const T &val) { return val; }
|
||||||
|
|
||||||
|
template <typename C, typename T>
|
||||||
|
inline typename std::enable_if<
|
||||||
|
std::is_same<decltype(sizeof(&T::toString)), size_t>::value,
|
||||||
|
typed_value<C, string_type>>::type
|
||||||
|
make_value(const T& val) {return static_cast<basic_string_view<typename C::char_type>>(val.toString());}
|
||||||
|
|
||||||
template <typename C, typename T>
|
template <typename C, typename T>
|
||||||
typed_value<C, name_arg_type>
|
typed_value<C, name_arg_type>
|
||||||
make_value(const named_arg<T, typename C::char_type> &val) {
|
make_value(const named_arg<T, typename C::char_type> &val) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user