All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsDenseMatrix.h
Go to the documentation of this file.
1 //=================================================================================================
20 //=================================================================================================
21 
22 #ifndef _BLAZE_MATH_TYPETRAITS_ISDENSEMATRIX_H_
23 #define _BLAZE_MATH_TYPETRAITS_ISDENSEMATRIX_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>
36 
37 
38 namespace blaze {
39 
40 //=================================================================================================
41 //
42 // CLASS DEFINITION
43 //
44 //=================================================================================================
45 
46 //*************************************************************************************************
51 template< typename T >
52 struct IsDenseMatrixHelper
53 {
54  private:
55  //**********************************************************************************************
56  typedef typename RemoveCV<T>::Type T2;
57  //**********************************************************************************************
58 
59  public:
60  //**********************************************************************************************
61  enum { value = boost::is_base_of< DenseMatrix<T2,false>, T2 >::value ||
62  boost::is_base_of< DenseMatrix<T2,true >, T2 >::value };
63  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
64  //**********************************************************************************************
65 };
67 //*************************************************************************************************
68 
69 
70 //*************************************************************************************************
89 template< typename T >
90 struct IsDenseMatrix : public IsDenseMatrixHelper<T>::Type
91 {
92  public:
93  //**********************************************************************************************
95  enum { value = IsDenseMatrixHelper<T>::value };
96  typedef typename IsDenseMatrixHelper<T>::Type Type;
98  //**********************************************************************************************
99 };
100 //*************************************************************************************************
101 
102 } // namespace blaze
103 
104 #endif