Blaze 3.9
YieldsDiagonal.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_MATH_TYPETRAITS_YIELDSDIAGONAL_H_
36#define _BLAZE_MATH_TYPETRAITS_YIELDSDIAGONAL_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< YieldsLower_v<OP,MT,MTs...> && YieldsUpper_v<OP,MT,MTs...> >
69{};
70//*************************************************************************************************
71
72
73//*************************************************************************************************
78template< typename OP, typename MT, typename... MTs >
79struct YieldsDiagonal< const OP, MT, MTs... >
80 : public YieldsDiagonal<OP,MT,MTs...>
81{};
83//*************************************************************************************************
84
85
86//*************************************************************************************************
91template< typename OP, typename MT, typename... MTs >
92struct YieldsDiagonal< volatile OP, MT, MTs... >
93 : public YieldsDiagonal<OP,MT,MTs...>
94{};
96//*************************************************************************************************
97
98
99//*************************************************************************************************
104template< typename OP, typename MT, typename... MTs >
105struct YieldsDiagonal< const volatile OP, MT, MTs... >
106 : public YieldsDiagonal<OP,MT,MTs...>
107{};
109//*************************************************************************************************
110
111
112//*************************************************************************************************
125template< typename OP, typename MT, typename... MTs >
126constexpr bool YieldsDiagonal_v = YieldsDiagonal<OP,MT,MTs...>::value;
127//*************************************************************************************************
128
129} // namespace blaze
130
131#endif
Header file for the IntegralConstant class template.
Header file for the YieldsLower type trait.
Header file for the YieldsUpper type trait.
constexpr bool YieldsDiagonal_v
Auxiliary variable template for the YieldsDiagonal type trait.
Definition: YieldsDiagonal.h:126
Generic wrapper for a compile time constant integral value.
Definition: IntegralConstant.h:74
Compile time check for operations on matrices.
Definition: YieldsDiagonal.h:69