Blaze 3.9
ColumnsTrait.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TRAITS_COLUMNSTRAIT_H_
36#define _BLAZE_MATH_TRAITS_COLUMNSTRAIT_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 ColumnsTrait;
58template< typename, size_t, typename = void > struct ColumnsTraitEval1;
59template< typename, size_t, typename = void > struct ColumnsTraitEval2;
61//*************************************************************************************************
62
63
64//*************************************************************************************************
66template< size_t N, typename T >
67auto evalColumnsTrait( const volatile T& ) -> ColumnsTraitEval1<T,N>;
69//*************************************************************************************************
70
71
72//*************************************************************************************************
117template< typename MT // Type of the matrix
118 , size_t N > // Number of compile time indices
120 : public decltype( evalColumnsTrait<N>( std::declval<MT&>() ) )
121{};
122//*************************************************************************************************
123
124
125//*************************************************************************************************
138template< typename MT // Type of the matrix
139 , size_t N > // Number of compile time indices
141//*************************************************************************************************
142
143
144//*************************************************************************************************
149template< typename MT // Type of the matrix
150 , size_t N // Number of compile time indices
151 , typename > // Restricting condition
152struct ColumnsTraitEval1
153 : public ColumnsTraitEval2<MT,N>
154{};
156//*************************************************************************************************
157
158
159//*************************************************************************************************
164template< typename MT // Type of the matrix
165 , size_t N // Number of compile time indices
166 , typename > // Restricting condition
167struct ColumnsTraitEval2
168{};
170//*************************************************************************************************
171
172} // namespace blaze
173
174#endif
typename ColumnsTrait< MT, N >::Type ColumnsTrait_t
Auxiliary alias declaration for the ColumnsTrait type trait.
Definition: ColumnsTrait.h:140
Base template for the ColumnsTrait class.
Definition: ColumnsTrait.h:121
Header file for basic type definitions.