TransExprTrait.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TRAITS_TRANSEXPRTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_TRANSEXPRTRAIT_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
57 #include <blaze/util/InvalidType.h>
58 #include <blaze/util/mpl/If.h>
59 #include <blaze/util/mpl/Or.h>
65 
66 
67 namespace blaze {
68 
69 //=================================================================================================
70 //
71 // CLASS DEFINITION
72 //
73 //=================================================================================================
74 
75 //*************************************************************************************************
85 template< typename T > // Type of the transpose operand
87 {
88  private:
89  //**struct Failure******************************************************************************
91  struct Failure { using Type = INVALID_TYPE; };
93  //**********************************************************************************************
94 
95  //**********************************************************************************************
97  using Tmp = If_< IsMatrix<T>
102  , If_< IsRowMajorMatrix<T>
110  , If_< IsRowVector<T>
113  , Failure > >;
115  //**********************************************************************************************
116 
117  public:
118  //**********************************************************************************************
120  using Type = typename If_< Or< IsConst<T>, IsVolatile<T>, IsReference<T> >
122  , Tmp >::Type;
124  //**********************************************************************************************
125 };
126 //*************************************************************************************************
127 
128 
129 //*************************************************************************************************
142 template< typename T > // Type of the transpose operand
144 //*************************************************************************************************
145 
146 } // namespace blaze
147 
148 #endif
Compile time check for volatile data types.The IsVolatile type trait tests whether or not the given t...
Definition: IsVolatile.h:75
Evaluation of the expression type of a sparse vector transpose operation.Via this type trait it is po...
Definition: TSVecTransExprTrait.h:74
Header file for the IsRowVector type trait.
Evaluation of the expression type of a sparse matrix transpose operation.Via this type trait it is po...
Definition: TSMatTransExprTrait.h:74
Header file for the IsVolatile type trait.
Header file for the IsMatrix type trait.
Header file for the Decay type trait.
Header file for the DMatTransExprTrait class template.
typename TransExprTrait< T >::Type TransExprTrait_
Auxiliary alias declaration for the TransExprTrait class template.The TransExprTrait_ alias declarati...
Definition: TransExprTrait.h:143
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Header file for the If class template.
Header file for the SMatTransExprTrait class template.
Evaluation of the expression type of a sparse vector transpose operation.Via this type trait it is po...
Definition: SVecTransExprTrait.h:74
Evaluation of the expression type of a dense matrix transpose operation.Via this type trait it is pos...
Definition: DMatTransExprTrait.h:74
Header file for the Or class template.
Header file for the TDMatTransExprTrait class template.
Header file for the TSMatTransExprTrait class template.
Evaluation of the expression type of a dense vector transpose operation.Via this type trait it is pos...
Definition: TDVecTransExprTrait.h:74
Header file for the IsVector type trait.
Header file for the IsDenseMatrix type trait.
Header file for the IsNumeric type trait.
Header file for the IsConst type trait.
Utility type for generic codes.
typename If< T1, T2, T3 >::Type If_
Auxiliary alias declaration for the If class template.The If_ alias declaration provides a convenient...
Definition: If.h:160
Header file for the DVecTransExprTrait class template.
Header file for the IsReference type trait.
Header file for the IsDenseVector type trait.
Header file for the SVecTransExprTrait class template.
Evaluation of the return type of a transpose expression.Via this type trait it is possible to evaluat...
Definition: TransExprTrait.h:86
Evaluation of the expression type of a sparse matrix transpose operation.Via this type trait it is po...
Definition: SMatTransExprTrait.h:74
Header file for the IsRowMajorMatrix type trait.
Header file for the TDVecTransExprTrait class template.
Compile time type check.This class tests whether the given template parameter T is a reference type (...
Definition: IsReference.h:75
Header file for the TSVecTransExprTrait class template.
Evaluation of the expression type of a dense matrix transpose operation.Via this type trait it is pos...
Definition: TDMatTransExprTrait.h:74
Evaluation of the expression type of a dense vector transpose operation.Via this type trait it is pos...
Definition: DVecTransExprTrait.h:74