All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsDenseVector.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISDENSEVECTOR_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISDENSEVECTOR_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <boost/type_traits/is_base_of.hpp>
45 #include <blaze/util/FalseType.h>
46 #include <blaze/util/SelectType.h>
47 #include <blaze/util/TrueType.h>
49 
50 
51 namespace blaze {
52 
53 //=================================================================================================
54 //
55 // CLASS DEFINITION
56 //
57 //=================================================================================================
58 
59 //*************************************************************************************************
64 template< typename T >
65 struct IsDenseVectorHelper
66 {
67  private:
68  //**********************************************************************************************
69  typedef typename RemoveCV<T>::Type T2;
70  //**********************************************************************************************
71 
72  public:
73  //**********************************************************************************************
74  enum { value = boost::is_base_of< DenseVector<T2,false>, T2 >::value ||
75  boost::is_base_of< DenseVector<T2,true >, T2 >::value };
76  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
77  //**********************************************************************************************
78 };
80 //*************************************************************************************************
81 
82 
83 //*************************************************************************************************
102 template< typename T >
103 struct IsDenseVector : public IsDenseVectorHelper<T>::Type
104 {
105  public:
106  //**********************************************************************************************
108  enum { value = IsDenseVectorHelper<T>::value };
109  typedef typename IsDenseVectorHelper<T>::Type Type;
111  //**********************************************************************************************
112 };
113 //*************************************************************************************************
114 
115 } // namespace blaze
116 
117 #endif
Header file for the FalseType type/value trait base class.
Header file for the RemoveCV type trait.
Header file for the DenseVector base class.
Compile time check for dense vector types.This type trait tests whether or not the given template par...
Definition: IsDenseVector.h:103
Header file for the SelectType class template.
Header file for the TrueType type/value trait base class.