Blaze  3.6
Rank.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_TYPETRAITS_RANK_H_
36 #define _BLAZE_UTIL_TYPETRAITS_RANK_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
44 
45 
46 namespace blaze {
47 
48 //=================================================================================================
49 //
50 // CLASS DEFINITION
51 //
52 //=================================================================================================
53 
54 //*************************************************************************************************
71 template< typename T >
72 struct Rank
73  : public IntegralConstant<size_t,0UL>
74 {};
75 //*************************************************************************************************
76 
77 
78 //*************************************************************************************************
80 template< typename T >
82 struct Rank<T[]>
83  : public IntegralConstant<size_t,1UL+Rank<T>::value>
84 {};
86 //*************************************************************************************************
87 
88 
89 //*************************************************************************************************
91 template< typename T, unsigned int N >
93 struct Rank<T[N]>
94  : public IntegralConstant<size_t,1UL+Rank<T>::value>
95 {};
97 //*************************************************************************************************
98 
99 
100 //*************************************************************************************************
113 template< typename T >
114 constexpr size_t Rank_v = Rank<T>::value;
115 //*************************************************************************************************
116 
117 } // namespace blaze
118 
119 #endif
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:72
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
constexpr size_t Rank_v
Auxiliary variable template for the Rank type trait.The Rank_v variable template provides a convenien...
Definition: Rank.h:114
Compile time check for array ranks.This type trait determines the rank of the given template argument...
Definition: Rank.h:72
Header file for the IntegralConstant class template.