All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IsRow.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TYPETRAITS_ISROW_H_
36 #define _BLAZE_MATH_TYPETRAITS_ISROW_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 IsRowHelper
66 {
67  private:
68  //**********************************************************************************************
69  typedef typename RemoveCV<T>::Type T2;
70  //**********************************************************************************************
71 
72  public:
73  //**********************************************************************************************
74  enum { value = boost::is_base_of<Row,T2>::value && !boost::is_base_of<T2,Row>::value };
75  typedef typename SelectType<value,TrueType,FalseType>::Type Type;
76  //**********************************************************************************************
77 };
79 //*************************************************************************************************
80 
81 
82 //*************************************************************************************************
110 template< typename T >
111 struct IsRow : public IsRowHelper<T>::Type
112 {
113  public:
114  //**********************************************************************************************
116  enum { value = IsRowHelper<T>::value };
117  typedef typename IsRowHelper<T>::Type Type;
119  //**********************************************************************************************
120 };
121 //*************************************************************************************************
122 
123 } // namespace blaze
124 
125 #endif
Header file for the FalseType type/value trait base class.
Header file for the row base class.
Header file for the RemoveCV type trait.
Compile time check for rows.This type trait tests whether or not the given template parameter is a ro...
Definition: IsRow.h:111
Header file for the SelectType class template.
Header file for the TrueType type/value trait base class.