Blaze 3.9
YieldsIdentity.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_YIELDSIDENTITY_H_
36#define _BLAZE_MATH_TYPETRAITS_YIELDSIDENTITY_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
46
47
48namespace blaze {
49
50//=================================================================================================
51//
52// CLASS DEFINITION
53//
54//=================================================================================================
55
56//*************************************************************************************************
66template< typename OP, typename MT, typename... MTs >
68 : public BoolConstant< YieldsUniLower_v<OP,MT,MTs...> && YieldsUniUpper_v<OP,MT,MTs...> >
69{};
70//*************************************************************************************************
71
72
73//*************************************************************************************************
78template< typename OP, typename MT, typename... MTs >
79struct YieldsIdentity< const OP, MT, MTs... >
80 : public YieldsIdentity<OP,MT,MTs...>
81{};
83//*************************************************************************************************
84
85
86//*************************************************************************************************
91template< typename OP, typename MT, typename... MTs >
92struct YieldsIdentity< volatile OP, MT, MTs... >
93 : public YieldsIdentity<OP,MT,MTs...>
94{};
96//*************************************************************************************************
97
98
99//*************************************************************************************************
104template< typename OP, typename MT, typename... MTs >
105struct YieldsIdentity< const volatile OP, MT, MTs... >
106 : public YieldsIdentity<OP,MT,MTs...>
107{};
109//*************************************************************************************************
110
111
112//*************************************************************************************************
125template< typename OP, typename MT, typename... MTs >
126constexpr bool YieldsIdentity_v = YieldsIdentity<OP,MT,MTs...>::value;
127//*************************************************************************************************
128
129} // namespace blaze
130
131#endif
Header file for the IntegralConstant class template.
Header file for the YieldsUniLower type trait.
Header file for the YieldsUniUpper type trait.
constexpr bool YieldsIdentity_v
Auxiliary variable template for the YieldsIdentity type trait.
Definition: YieldsIdentity.h:126
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
Compile time check for operations on matrices.
Definition: YieldsIdentity.h:69