31template <
typename T,
typename Enable =
void>
38template <
typename T,
typename =
void>
39struct IsConvertible : std::false_type {};
42struct IsConvertible<T, std::void_t<decltype(TypeConverter<T>{})>> : std::true_type {};
44template <typename T, typename = std::enable_if_t<detail::IsConvertible<T>::value>>
45[[nodiscard]]
constexpr T fromNative(
const typename TypeConverter<T>::NativeType& src) {
47 TypeConverter<T>::fromNative(src, dst);
51template <typename T, typename = std::enable_if_t<detail::IsConvertible<T>::value>>
52[[nodiscard]]
constexpr auto toNative(
const T& src) ->
typename TypeConverter<T>::NativeType {
53 using NativeType =
typename TypeConverter<T>::NativeType;
55 TypeConverter<T>::toNative(src, dst);
Type conversion from and to native types.