Blaze 3.9
EvaluateTrait.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TRAITS_EVALUATETRAIT_H_
36#define _BLAZE_MATH_TRAITS_EVALUATETRAIT_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
46
47
48namespace blaze {
49
50//=================================================================================================
51//
52// CLASS DEFINITION
53//
54//=================================================================================================
55
56//*************************************************************************************************
66template< typename T // Type of the operand
67 , typename = void > // Restricting condition
69{
70 public:
71 //**********************************************************************************************
73 using Type = RemoveCVRef_t<T>;
75 //**********************************************************************************************
76};
77//*************************************************************************************************
78
79
80//*************************************************************************************************
85template< typename T > // Type of the operand
86struct EvaluateTrait< T, EnableIf_t< IsVector_v<T> || IsMatrix_v<T> > >
87{
88 //**********************************************************************************************
89 using Type = typename T::ResultType;
90 //**********************************************************************************************
91};
93//*************************************************************************************************
94
95
96//*************************************************************************************************
109template< typename T >
111//*************************************************************************************************
112
113} // namespace blaze
114
115#endif
Header file for the IsMatrix type trait.
Header file for the IsVector type trait.
Header file for the RemoveCVRef type trait.
typename EvaluateTrait< T >::Type EvaluateTrait_t
Auxiliary alias declaration for the EvaluateTrait type trait.
Definition: EvaluateTrait.h:110
constexpr bool IsVector_v
Auxiliary variable template for the IsVector type trait.
Definition: IsVector.h:125
constexpr bool IsMatrix_v
Auxiliary variable template for the IsMatrix type trait.
Definition: IsMatrix.h:124
typename RemoveCVRef< T >::Type RemoveCVRef_t
Auxiliary alias declaration for the RemoveCVRef type trait.
Definition: RemoveCVRef.h:99
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
Evaluation of the return type of the evaluate function.
Definition: EvaluateTrait.h:69