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>
|
||||
inline typename std::enable_if<
|
||||
!std::is_same<decltype(sizeof(&T::toString)), size_t>::value &&
|
||||
!convert_to_int<T, Char>::value &&
|
||||
!std::is_convertible<T, basic_string_view<Char>>::value &&
|
||||
!std::is_convertible<T, std::basic_string<Char>>::value,
|
||||
typed_value<C, custom_type>>::type
|
||||
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>
|
||||
typed_value<C, name_arg_type>
|
||||
make_value(const named_arg<T, typename C::char_type> &val) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user