36 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_CAN_GET_RAW_PTR_HPP
37 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_CAN_GET_RAW_PTR_HPP
39 #include <boost/utility/enable_if.hpp>
40 #include <boost/mpl/if.hpp>
41 #include <boost/mpl/and.hpp>
42 #include <boost/type_traits.hpp>
47 template<
typename MatrixType>
51 struct CanGetRawPtr<NekMatrix<T, StandardMatrixTag> > :
public boost::true_type {};
53 template<
typename T,
typename R>
54 struct CanGetRawPtr<NekMatrix<NekMatrix<T, R>, ScaledMatrixTag> > :
public boost::true_type {};
56 template<
typename T,
typename M>
62 boost::mpl::not_<boost::is_same<BlockMatrixTag, M> >,
64 >, boost::true_type, boost::false_type
68 #endif //NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_CAN_GET_RAW_PTR_HPP