Blaze 3.9
SameType.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_UTIL_CONSTRAINTS_SAMETYPE_H_
36#define _BLAZE_UTIL_CONSTRAINTS_SAMETYPE_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
44
45
46namespace blaze {
47
48//=================================================================================================
49//
50// MUST_BE_SAME_TYPE CONSTRAINT
51//
52//=================================================================================================
53
54//*************************************************************************************************
71#define BLAZE_CONSTRAINT_MUST_BE_SAME_TYPE(A,B) \
72 static_assert( ::blaze::IsSame_v<A,B>, "Non-matching types detected" )
73//*************************************************************************************************
74
75
76
77
78//=================================================================================================
79//
80// MUST_NOT_BE_SAME_TYPE CONSTRAINT
81//
82//=================================================================================================
83
84//*************************************************************************************************
102#define BLAZE_CONSTRAINT_MUST_NOT_BE_SAME_TYPE(A,B) \
103 static_assert( !::blaze::IsSame_v<A,B>, "Matching types detected" )
104//*************************************************************************************************
105
106
107
108
109//=================================================================================================
110//
111// MUST_BE_STRICTLY_SAME_TYPE CONSTRAINT
112//
113//=================================================================================================
114
115//*************************************************************************************************
131#define BLAZE_CONSTRAINT_MUST_BE_STRICTLY_SAME_TYPE(A,B) \
132 static_assert( ::blaze::IsStrictlySame_v<A,B>, "Non-matching types detected" )
133//*************************************************************************************************
134
135
136
137
138//=================================================================================================
139//
140// MUST_NOT_BE_STRICTLY_SAME_TYPE CONSTRAINT
141//
142//=================================================================================================
143
144//*************************************************************************************************
160#define BLAZE_CONSTRAINT_MUST_NOT_BE_STRICTLY_SAME_TYPE(A,B) \
161 static_assert( !::blaze::IsStrictlySame_v<A,B>, "Matching types detected" )
162//*************************************************************************************************
163
164} // namespace blaze
165
166#endif
Header file for the IsSame and IsStrictlySame type traits.