IsSame.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_TYPETRAITS_ISSAME_H_
36 #define _BLAZE_UTIL_TYPETRAITS_ISSAME_H_
37 
38 
39 //*************************************************************************************************
40 // Includes
41 //*************************************************************************************************
42 
43 #include <blaze/util/FalseType.h>
45 #include <blaze/util/TrueType.h>
47 
48 
49 namespace blaze {
50 
51 //=================================================================================================
52 //
53 // CLASS DEFINITION
54 //
55 //=================================================================================================
56 
57 //*************************************************************************************************
76 template< typename A, typename B >
78  : public FalseType
79 {};
80 //*************************************************************************************************
81 
82 
83 //*************************************************************************************************
85 template< typename T >
87 struct IsStrictlySame<T,T>
88  : public TrueType
89 {};
91 //*************************************************************************************************
92 
93 
94 //*************************************************************************************************
107 template< typename A, typename B >
109 //*************************************************************************************************
110 
111 
112 
113 
114 //=================================================================================================
115 //
116 // CLASS DEFINITION
117 //
118 //=================================================================================================
119 
120 //*************************************************************************************************
140 template< typename A, typename B >
141 struct IsSame
142  : public BoolConstant< IsStrictlySame_v< RemoveCV_t<A>, RemoveCV_t<B> > >
143 {};
144 //*************************************************************************************************
145 
146 
147 //*************************************************************************************************
160 template< typename A, typename B >
161 constexpr bool IsSame_v = IsSame<A,B>::value;
162 //*************************************************************************************************
163 
164 } // namespace blaze
165 
166 #endif
Header file for the FalseType type/value trait base class.
Header file for the RemoveCV type trait.
Generic wrapper for a compile time constant integral value.The IntegralConstant class template repres...
Definition: IntegralConstant.h:71
Type relationship analysis.This class tests if the two data types A and B are equal. For this type comparison, the cv-qualifiers of both data types are ignored. If A and B are the same data type (ignoring the cv-qualifiers), then the value member constant is set to true, the nested type definition Type is TrueType, and the class derives from TrueType. Otherwise value is set to false, Type is FalseType, and the class derives from FalseType.
Definition: IsSame.h:141
constexpr bool IsStrictlySame_v
Auxiliary variable template for the IsStrictlySame type trait.The IsStrictlySame_v variable template ...
Definition: IsSame.h:108
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
Compile time type relationship analysis.This class tests if the two data types A and B are equal...
Definition: IsSame.h:77
Header file for the IntegralConstant class template.
constexpr bool IsSame_v
Auxiliary variable template for the IsSame type trait.The IsSame_v variable template provides a conve...
Definition: IsSame.h:161
Header file for the TrueType type/value trait base class.