Blaze 3.9
Assignable.h
Go to the documentation of this file.
1//=================================================================================================
33//=================================================================================================
34
35#ifndef _BLAZE_UTIL_CONSTRAINTS_ASSIGNABLE_H_
36#define _BLAZE_UTIL_CONSTRAINTS_ASSIGNABLE_H_
37
38
39//*************************************************************************************************
40// Includes
41//*************************************************************************************************
42
44
45
46namespace blaze {
47
48//=================================================================================================
49//
50// MUST_BE_COPY_ASSIGNABLE_TYPE CONSTRAINT
51//
52//=================================================================================================
53
54//*************************************************************************************************
61#define BLAZE_CONSTRAINT_MUST_BE_COPY_ASSIGNABLE_TYPE(T) \
62 static_assert( ::blaze::IsCopyAssignable_v<T>, "Non-copy assignable type detected" )
63//*************************************************************************************************
64
65
66
67
68//=================================================================================================
69//
70// MUST_NOT_BE_COPY_ASSIGNABLE_TYPE CONSTRAINT
71//
72//=================================================================================================
73
74//*************************************************************************************************
81#define BLAZE_CONSTRAINT_MUST_NOT_BE_COPY_ASSIGNABLE_TYPE(T) \
82 static_assert( !::blaze::IsCopyAssignable_v<T>, "Copy assignable type detected" )
83//*************************************************************************************************
84
85
86
87
88//=================================================================================================
89//
90// MUST_BE_NOTHROW_COPY_ASSIGNABLE_TYPE CONSTRAINT
91//
92//=================================================================================================
93
94//*************************************************************************************************
101#define BLAZE_CONSTRAINT_MUST_BE_NOTHROW_COPY_ASSIGNABLE_TYPE(T) \
102 static_assert( ::blaze::IsNothrowCopyAssignable_v<T>, "Non-noexcept copy assignable type detected" )
103//*************************************************************************************************
104
105
106
107
108//=================================================================================================
109//
110// MUST_NOT_BE_NOTHROW_COPY_ASSIGNABLE_TYPE CONSTRAINT
111//
112//=================================================================================================
113
114//*************************************************************************************************
121#define BLAZE_CONSTRAINT_MUST_NOT_BE_NOTHROW_COPY_ASSIGNABLE_TYPE(T) \
122 static_assert( !::blaze::IsNothrowCopyAssignable_v<T>, "Noexcept copy assignable type detected" )
123//*************************************************************************************************
124
125
126
127
128//=================================================================================================
129//
130// MUST_BE_MOVE_ASSIGNABLE_TYPE CONSTRAINT
131//
132//=================================================================================================
133
134//*************************************************************************************************
141#define BLAZE_CONSTRAINT_MUST_BE_MOVE_ASSIGNABLE_TYPE(T) \
142 static_assert( ::blaze::IsMoveAssignable_v<T>, "Non-move assignable type detected" )
143//*************************************************************************************************
144
145
146
147
148//=================================================================================================
149//
150// MUST_NOT_BE_MOVE_ASSIGNABLE_TYPE CONSTRAINT
151//
152//=================================================================================================
153
154//*************************************************************************************************
161#define BLAZE_CONSTRAINT_MUST_NOT_BE_MOVE_ASSIGNABLE_TYPE(T) \
162 static_assert( !::blaze::IsMoveAssignable_v<T>, "Move assignable type detected" )
163//*************************************************************************************************
164
165
166
167
168//=================================================================================================
169//
170// MUST_BE_NOTHROW_MOVE_ASSIGNABLE_TYPE CONSTRAINT
171//
172//=================================================================================================
173
174//*************************************************************************************************
181#define BLAZE_CONSTRAINT_MUST_BE_NOTHROW_MOVE_ASSIGNABLE_TYPE(T) \
182 static_assert( ::blaze::IsNothrowMoveAssignable_v<T>, "Non-noexcept move assignable type detected" )
183//*************************************************************************************************
184
185
186
187
188//=================================================================================================
189//
190// MUST_NOT_BE_NOTHROW_MOVE_ASSIGNABLE_TYPE CONSTRAINT
191//
192//=================================================================================================
193
194//*************************************************************************************************
201#define BLAZE_CONSTRAINT_MUST_NOT_BE_NOTHROW_MOVE_ASSIGNABLE_TYPE(T) \
202 static_assert( !::blaze::IsNothrowMoveAssignable_v<T>, "Noexcept move assignable type detected" )
203//*************************************************************************************************
204
205} // namespace blaze
206
207#endif
Header file for the IsAssignable type trait.