All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsColumnVector.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISCOLUMNVECTOR_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISCOLUMNVECTOR_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <boost/type_traits/is_base_of.hpp>
46 #include <blaze/util/FalseType.h>
47 #include <blaze/util/SelectType.h>
48 #include <blaze/util/TrueType.h>
50 
51 
52 namespace blaze {
53 
54 //=================================================================================================
55 //
56 // CLASS DEFINITION
57 //
58 //=================================================================================================
59 
60 //*************************************************************************************************
65 template< typename T >
66 struct IsColumnVectorHelper
67 {
68  private:
69  //**********************************************************************************************
70  typedef typename RemoveCV<T>::Type T2;
71  //**********************************************************************************************
72 
73  public:
74  //**********************************************************************************************
75  enum { value = boost::is_base_of< DenseVector <T2,false>, T2 >::value ||
76  boost::is_base_of< SparseVector<T2,false>, T2 >::value };
77  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
78  //**********************************************************************************************
79 };
81 //*************************************************************************************************
82 
83 
84 //*************************************************************************************************
106 template< typename T >
107 struct IsColumnVector : public IsColumnVectorHelper<T>::Type
108 {
109  public:
110  //**********************************************************************************************
112  enum { value = IsColumnVectorHelper<T>::value };
113  typedef typename IsColumnVectorHelper<T>::Type Type;
115  //**********************************************************************************************
116 };
117 //*************************************************************************************************
118 
119 } // namespace blaze
120 
121 #endif
Header file for the SparseVector base class.
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 column vector types.This type trait tests whether or not the given template ar...
Definition: IsColumnVector.h:107
Header file for the SelectType class template.
Header file for the TrueType type/value trait base class.