diff --git a/include/eigenpy/fwd.hpp b/include/eigenpy/fwd.hpp index 557fda42e23058f53d8606d1cbd1e480a00fd13f..bb8a1913c57f105d35f6aa21cbf3a76d1bb8f1cf 100644 --- a/include/eigenpy/fwd.hpp +++ b/include/eigenpy/fwd.hpp @@ -122,6 +122,24 @@ template <typename MatType, typename Scalar = typename boost::remove_reference<MatType>::type::Scalar> struct EigenFromPy; + +template <typename EigenType> +struct get_eigen_base_type { + typedef typename boost::remove_const<EigenType>::type EigenType_; + typedef typename boost::mpl::if_< + boost::is_base_of<Eigen::MatrixBase<EigenType_>, EigenType_>, + Eigen::MatrixBase<EigenType> +#ifdef EIGENPY_WITH_TENSOR_SUPPORT + , + typename boost::mpl::if_< + boost::is_base_of<Eigen::TensorBase<EigenType_>, EigenType_>, + Eigen::TensorBase<EigenType>, void>::type +#else + , + void +#endif + >::type type; +}; } // namespace eigenpy #include "eigenpy/alignment.hpp"