7 #ifndef MATIOCPP_EXOGENOUSCONVERSIONHELPERS_TPP
8 #define MATIOCPP_EXOGENOUSCONVERSIONHELPERS_TPP
15 template <
typename T,
typename =
void,
typename =
void>
20 #ifdef MATIOCPP_HAS_EIGEN
28 template <
typename Derived>
30 typename
std::enable_if_t<std::is_base_of<Eigen::MatrixBase<Derived>, Derived>::value>,
31 typename std::enable_if_t<Eigen::MatrixBase<Derived>::RowsAtCompileTime != 1 &&
32 Eigen::MatrixBase<Derived>::ColsAtCompileTime != 1>>:
std::true_type
41 template <
typename T,
typename =
void,
typename =
void>
56 typename
std::enable_if<(std::is_array<T>::value || matioCpp::SpanUtils::has_type_member<T>::value || matioCpp::SpanUtils::has_data_method<T>::value) && !is_eigen_matrix<T>::value>::type,
57 typename
std::enable_if<matioCpp::SpanUtils::is_make_span_callable<T>::value &&
58 !std::is_same<typename matioCpp::SpanUtils::container_data<T>::type, bool>::value>::type> :
std::true_type
65 template <
typename,
typename =
void,
typename =
void>
79 template <
typename,
typename =
void,
typename =
void>
87 struct is_pair_iterator_string<T,
88 typename
std::enable_if_t<is_pair<decltype(*std::declval<T>())>::value>,
89 typename std::enable_if_t<std::is_convertible<decltype(std::declval<T>()->first), std::string>::value>> :
std::true_type
typename make_void< Ts... >::type void_t
is_eigen_matrix is a template metafunction to check if T is an Eigen matrix.
is_vector_compatible is a utility metafunction to check if the input vector T is compatible with mati...