Blaze 3.9
RowsTrait.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TRAITS_ROWSTRAIT_H_
36#define _BLAZE_MATH_TRAITS_ROWSTRAIT_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
43#include <utility>
44#include <blaze/util/Types.h>
45
46
47namespace blaze {
48
49//=================================================================================================
50//
51// CLASS DEFINITION
52//
53//=================================================================================================
54
55//*************************************************************************************************
57template< typename, size_t > struct RowsTrait;
58template< typename, size_t, typename = void > struct RowsTraitEval1;
59template< typename, size_t, typename = void > struct RowsTraitEval2;
61//*************************************************************************************************
62
63
64//*************************************************************************************************
66template< size_t M , typename T >
67auto evalRowsTrait( const volatile T& ) -> RowsTraitEval1<T,M>;
69//*************************************************************************************************
70
71
72//*************************************************************************************************
117template< typename MT // Type of the matrix
118 , size_t M > // Number of compile time indices
120 : public decltype( evalRowsTrait<M>( std::declval<MT&>() ) )
121{};
122//*************************************************************************************************
123
124
125//*************************************************************************************************
138template< typename MT // Type of the matrix
139 , size_t M > // Number of compile time indices
141//*************************************************************************************************
142
143
144//*************************************************************************************************
149template< typename MT // Type of the matrix
150 , size_t M // Number of compile time indices
151 , typename > // Restricting condition
152struct RowsTraitEval1
153 : public RowsTraitEval2<MT,M>
154{};
156//*************************************************************************************************
157
158
159//*************************************************************************************************
164template< typename MT // Type of the matrix
165 , size_t M // Number of compile time indices
166 , typename > // Restricting condition
167struct RowsTraitEval2
168{};
170//*************************************************************************************************
171
172} // namespace blaze
173
174#endif
typename RowsTrait< MT, M >::Type RowsTrait_t
Auxiliary alias declaration for the RowsTrait type trait.
Definition: RowsTrait.h:140
Base template for the RowsTrait class.
Definition: RowsTrait.h:121
Header file for basic type definitions.