All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsMatVecMultExpr.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_MATH_TYPETRAITS_ISMATVECMULTEXPR_H_
23 #define _BLAZE_MATH_TYPETRAITS_ISMATVECMULTEXPR_H_
24 
25 
26 //*************************************************************************************************
27 // Includes
28 //*************************************************************************************************
29 
30 #include <boost/type_traits/is_base_of.hpp>
32 #include <blaze/util/FalseType.h>
33 #include <blaze/util/SelectType.h>
34 #include <blaze/util/TrueType.h>
35 
36 
37 namespace blaze {
38 
39 //=================================================================================================
40 //
41 // CLASS DEFINITION
42 //
43 //=================================================================================================
44 
45 //*************************************************************************************************
50 template< typename T >
51 struct IsMatVecMultExprHelper
52 {
53  //**********************************************************************************************
54  enum { value = boost::is_base_of<MatVecMultExpr,T>::value && !boost::is_base_of<T,MatVecMultExpr>::value };
55  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
56  //**********************************************************************************************
57 };
59 //*************************************************************************************************
60 
61 
62 //*************************************************************************************************
76 template< typename T >
77 struct IsMatVecMultExpr : public IsMatVecMultExprHelper<T>::Type
78 {
79  public:
80  //**********************************************************************************************
82  enum { value = IsMatVecMultExprHelper<T>::value };
83  typedef typename IsMatVecMultExprHelper<T>::Type Type;
85  //**********************************************************************************************
86 };
87 //*************************************************************************************************
88 
89 } // namespace blaze
90 
91 #endif