EvalExprTrait.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_MATH_TRAITS_EVALEXPRTRAIT_H_
36 #define _BLAZE_MATH_TRAITS_EVALEXPRTRAIT_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>
64 
65 
66 namespace blaze {
67 
68 //=================================================================================================
69 //
70 // CLASS DEFINITION
71 //
72 //=================================================================================================
73 
74 //*************************************************************************************************
84 template< typename T > // Type of the evaluation operand
86 {
87  private:
88  //**struct Failure******************************************************************************
90  struct Failure { using Type = INVALID_TYPE; };
92  //**********************************************************************************************
93 
94  //**********************************************************************************************
96  using Tmp = If_< IsMatrix<T>
101  , If_< IsRowMajorMatrix<T>
109  , If_< IsRowVector<T>
112  , Failure > >;
114  //**********************************************************************************************
115 
116  public:
117  //**********************************************************************************************
119  using Type = typename If_< Or< IsConst<T>, IsVolatile<T>, IsReference<T> >
121  , Tmp >::Type;
123  //**********************************************************************************************
124 };
125 //*************************************************************************************************
126 
127 
128 //*************************************************************************************************
141 template< typename T > // Type of the evaluation operand
143 //*************************************************************************************************
144 
145 } // namespace blaze
146 
147 #endif
Evaluation of the expression type of a sparse matrix evaluation operation.Via this type trait it is p...
Definition: SMatEvalExprTrait.h:74
Header file for the DMatEvalExprTrait class template.
Evaluation of the expression type of a sparse matrix evaluation operation.Via this type trait it is p...
Definition: TSMatEvalExprTrait.h:74
Compile time check for volatile data types.The IsVolatile type trait tests whether or not the given t...
Definition: IsVolatile.h:75
Header file for the TSMatEvalExprTrait class template.
Header file for the IsRowVector type trait.
typename EvalExprTrait< T >::Type EvalExprTrait_
Auxiliary alias declaration for the EvalExprTrait class template.The EvalExprTrait_ alias declaration...
Definition: EvalExprTrait.h:142
Header file for the IsVolatile type trait.
Evaluation of the expression type of a sparse vector evaluation operation.Via this type trait it is p...
Definition: TSVecEvalExprTrait.h:74
Header file for the IsMatrix type trait.
Header file for the Decay type trait.
Header file for the SMatEvalExprTrait class template.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
Evaluation of the expression type of a dense matrix evaluation operation.Via this type trait it is po...
Definition: DMatEvalExprTrait.h:74
Header file for the If class template.
Header file for the Or class template.
Header file for the TDVecEvalExprTrait class template.
Header file for the IsVector type trait.
Header file for the IsDenseMatrix type trait.
Evaluation of the expression type of a dense vector evaluation operation.Via this type trait it is po...
Definition: DVecEvalExprTrait.h:74
Header file for the IsConst type trait.
Utility type for generic codes.
Header file for the DVecEvalExprTrait class template.
Evaluation of the expression type of a dense matrix evaluation operation.Via this type trait it is po...
Definition: TDMatEvalExprTrait.h:74
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
Evaluation of the expression type of a dense vector evaluation operation.Via this type trait it is po...
Definition: TDVecEvalExprTrait.h:74
Header file for the TSVecEvalExprTrait class template.
Evaluation of the expression type of a sparse vector evaluation operation.Via this type trait it is p...
Definition: SVecEvalExprTrait.h:74
Header file for the IsReference type trait.
Header file for the IsDenseVector type trait.
Header file for the IsRowMajorMatrix type trait.
Header file for the TDMatEvalExprTrait class template.
Compile time type check.This class tests whether the given template parameter T is a reference type (...
Definition: IsReference.h:75
Evaluation of the return type of an evaluation expression.Via this type trait it is possible to evalu...
Definition: EvalExprTrait.h:85
Header file for the SVecEvalExprTrait class template.