22 #ifndef _BLAZE_MATH_TYPETRAITS_ISMATMATSUBEXPR_H_
23 #define _BLAZE_MATH_TYPETRAITS_ISMATMATSUBEXPR_H_
30 #include <boost/type_traits/remove_cv.hpp>
49 template<
typename T >
50 struct IsMatMatSubExprHelper
64 template<
typename MT1,
typename MT2,
bool SO >
65 struct IsMatMatSubExprHelper< DMatDMatSubExpr<MT1,MT2,SO> > :
public TrueType
80 template<
typename MT1,
typename MT2,
bool SO >
81 struct IsMatMatSubExprHelper< DMatSMatSubExpr<MT1,MT2,SO> > :
public TrueType
96 template<
typename MT1,
typename MT2 >
97 struct IsMatMatSubExprHelper< DMatTDMatSubExpr<MT1,MT2> > :
public TrueType
112 template<
typename MT1,
typename MT2 >
113 struct IsMatMatSubExprHelper< DMatTSMatSubExpr<MT1,MT2> > :
public TrueType
128 template<
typename MT1,
typename MT2,
bool SO >
129 struct IsMatMatSubExprHelper< SMatDMatSubExpr<MT1,MT2,SO> > :
public TrueType
144 template<
typename MT1,
typename MT2 >
145 struct IsMatMatSubExprHelper< SMatSMatSubExpr<MT1,MT2> > :
public TrueType
160 template<
typename MT1,
typename MT2 >
161 struct IsMatMatSubExprHelper< SMatTDMatSubExpr<MT1,MT2> > :
public TrueType
176 template<
typename MT1,
typename MT2 >
177 struct IsMatMatSubExprHelper< SMatTSMatSubExpr<MT1,MT2> > :
public TrueType
192 template<
typename MT1,
typename MT2 >
193 struct IsMatMatSubExprHelper< TDMatSMatSubExpr<MT1,MT2> > :
public TrueType
208 template<
typename MT1,
typename MT2 >
209 struct IsMatMatSubExprHelper< TSMatDMatSubExpr<MT1,MT2> > :
public TrueType
224 template<
typename MT1,
typename MT2 >
225 struct IsMatMatSubExprHelper< TSMatSMatSubExpr<MT1,MT2> > :
public TrueType
240 template<
typename MT1,
typename MT2 >
241 struct IsMatMatSubExprHelper< TSMatTSMatSubExpr<MT1,MT2> > :
public TrueType
263 template<
typename T >
264 struct IsMatMatSubExpr :
public IsMatMatSubExprHelper< typename boost::remove_cv<T>::type >::Type
269 enum { value = IsMatMatSubExprHelper< typename boost::remove_cv<T>::type >::value };
270 typedef typename IsMatMatSubExprHelper< typename boost::remove_cv<T>::type >::Type Type;