Qx v0.6
Qt Extensions Library
Loading...
Searching...
No Matches
qx-concepts.h
Go to the documentation of this file.
1#ifndef QX_CONCEPTS_H
2#define QX_CONCEPTS_H
3
4// Standard Library Includes
5#include <iterator>
6#include <type_traits>
7
8// Qt Includes
9#include <QHash>
10#include <QMap>
11
12// Inter-component Includes
14
15namespace Qx
16{
17
18// Assignment Operators
19template<class K, typename T>
20concept defines_assign_for_s = requires(K klass, T type) {{ klass = type } -> std::same_as<K&>;};
21
22template<class K, typename T>
23concept defines_assign_for = requires(K klass, T type) {{ klass = type };};
24
25template<class K>
27
28template<class K>
30
31template<class K, typename T>
32concept defines_add_assign_for_s = requires(K klass, T type) {{ klass += type } -> std::same_as<K&>;};
33
34template<class K, typename T>
35concept defines_add_assign_for = requires(K klass, T type) {{ klass += type };};
36
37template<class K>
39
40template<class K>
42
43template<class K, typename T>
44concept defines_sub_assign_for_s = requires(K klass, T type) {{ klass -= type } -> std::same_as<K&>;};
45
46template<class K, typename T>
47concept defines_sub_assign_for = requires(K klass, T type) {{ klass -= type };};
48
49template<class K>
51
52template<class K>
54
55template<class K, typename T>
56concept defines_mult_assign_for_s = requires(K klass, T type) {{ klass *= type } -> std::same_as<K&>;};
57
58template<class K, typename T>
59concept defines_mult_assign_for = requires(K klass, T type) {{ klass *= type };};
60
61template<class K>
63
64template<class K>
66
67template<class K, typename T>
68concept defines_div_assign_for_s = requires(K klass, T type) {{ klass /= type } -> std::same_as<K&>;};
69
70template<class K, typename T>
71concept defines_div_assign_for = requires(K klass, T type) {{ klass /= type };};
72
73template<class K>
75
76template<class K>
78
79template<class K, typename T>
80concept defines_mod_assign_for_s = requires(K klass, T type) {{ klass %= type } -> std::same_as<K&>;};
81
82template<class K, typename T>
83concept defines_mod_assign_for = requires(K klass, T type) {{ klass %= type };};
84
85template<class K>
87
88template<class K>
90
91template<class K, typename T>
92concept defines_bit_and_assign_for_s = requires(K klass, T type) {{ klass &= type } -> std::same_as<K&>;};
93
94template<class K, typename T>
95concept defines_bit_and_assign_for = requires(K klass, T type) {{ klass &= type };};
96
97template<class K>
99
100template<class K>
102
103template<class K, typename T>
104concept defines_bit_or_assign_for_s = requires(K klass, T type) {{ klass |= type } -> std::same_as<K&>;};
105
106template<class K, typename T>
107concept defines_bit_or_assign_for = requires(K klass, T type) {{ klass |= type };};
108
109template<class K>
111
112template<class K>
114
115template<class K, typename T>
116concept defines_bit_xor_assign_for_s = requires(K klass, T type) {{ klass ^= type } -> std::same_as<K&>;};
117
118template<class K, typename T>
119concept defines_bit_xor_assign_for = requires(K klass, T type) {{ klass ^= type };};
120
121template<class K>
123
124template<class K>
126
127template<class K, typename T>
128concept defines_left_shift_assign_for_s = requires(K klass, T type) {{ klass <<= type } -> std::same_as<K&>;};
129
130template<class K, typename T>
131concept defines_left_shift_assign_for = requires(K klass, T type) {{ klass <<= type };};
132
133template<class K>
135
136template<class K>
138
139template<class K, typename T>
140concept defines_right_shift_assign_for_s = requires(K klass, T type) {{ klass >>= type } -> std::same_as<K&>;};
141
142template<class K, typename T>
143concept defines_right_shift_assign_for = requires(K klass, T type) {{ klass >>= type };};
144
145template<class K>
147
148template<class K>
150
151// Increment Decrement Operators
152template<class K>
153concept defines_pre_increment_s = requires(K klass) {{ ++klass } -> std::same_as<K&>;};
154
155template<class K>
156concept defines_pre_increment = requires(K klass) {{ ++klass };};
157
158template<class K>
159concept defines_pre_decrement_s = requires(K klass) {{ --klass } -> std::same_as<K&>;};
160
161template<class K>
162concept defines_pre_decrement = requires(K klass) {{ --klass };};
163
164template<class K>
165concept defines_post_increment_s = requires(K klass) {{ klass++} -> std::same_as<K>;};
166
167template<class K>
168concept defines_post_increment = requires(K klass) {{ klass++ };};
169
170template<class K>
171concept defines_post_decrement_s = requires(K klass) {{ klass-- } -> std::same_as<K>;};
172
173template<class K>
174concept defines_post_decrement = requires(K klass) {{ klass-- };};
175
176// Logical Operators
177template<class K>
178concept defines_negation_s = requires(K klass) {{ !klass } -> std::same_as<bool>;};
179
180template<class K>
181concept defines_negation = requires(K klass) {{ !klass };};
182
183template<class K, typename T>
184concept defines_and_for_s = requires(K klass, T type) {{ klass && type } -> std::same_as<bool>;};
185
186template<class K, typename T>
187concept defines_and_for = requires(K klass, T type) {{ klass && type };};
188
189template<class K>
191
192template<class K>
194
195template<class K, typename T>
196concept defines_or_for_s = requires(K klass, T type) {{ klass || type } -> std::same_as<bool>;};
197
198template<class K, typename T>
199concept defines_or_for = requires(K klass, T type) {{ klass || type };};
200
201template<class K>
203
204template<class K>
206
207// Member Access Operators
208template<class K, typename R, typename T>
209concept defines_subscript_for_s = requires(K klass, T type) {{ klass[type] } -> std::same_as<R&>;};
210
211template<class K, typename T>
212concept defines_subscript_for = requires(K klass, T type) {{ klass[type] };};
213
214template<class K, typename R>
215concept defines_indirection_s = requires(K klass) {{ *klass } -> std::same_as<R&>;};
216
217template<class K>
218concept defines_indirection = requires(K klass) {{ *klass };};
219
220template<class K, typename R>
221concept defines_address_of_s = requires(K klass) {{ &klass } -> std::same_as<R*>;};
222
223template<class K>
224concept defines_address_of = requires(K klass) {{ &klass };};
225
226template<class K>
227concept defines_member_ptr = requires(K klass) {{ klass.operator->() };};
228
229template<class K, typename R>
230concept defines_member_ptr_s = requires(K klass) {{ klass.operator->() } -> std::same_as<R*>;};
231
232template<class K, typename R, typename T>
233concept defines_ptr_to_member_ptr_for_s = requires(K klass, T type) {{ klass->*type } -> std::same_as<R&>;};
234
235template<class K, typename T>
236concept defines_ptr_to_member_ptr_for = requires(K klass, T type) {{ klass->*type };};
237
238// Other Operators
239template<class K, typename R, typename... Types>
240concept defines_call_for_s = requires(K klass, Types... args) {{ klass(args...) } -> std::same_as<R>;};
241
242template<class K, typename... Types>
243concept defines_call_for = requires(K klass, Types... args) {{ klass(args...) };};
244
245template<class K, typename R>
247
248template<class K>
250
251template<class K, typename T>
252concept defines_comma_for_s = requires(K klass, T type) {{ klass, type } -> std::same_as<T&>;};
253
254template<class K, typename T>
255concept defines_comma_for = requires(K klass, T type) {{ klass, type };};
256
257// Arithmetic Operators
258template<class K>
259concept defines_unary_plus_s = requires(K klass) {{ +klass } -> std::same_as<K>;};
260
261template<class K>
262concept defines_unary_plus = requires(K klass) {{ +klass };};
263
264template<class K>
265concept defines_unary_minus_s = requires(K klass) {{ -klass } -> std::same_as<K>;};
266
267template<class K>
268concept defines_unary_minus = requires(K klass) {{ -klass };};
269
270template<class K, typename T>
271concept defines_add_for_s = requires(K klass, T type) {{ klass + type } -> std::same_as<K>;};
272
273template<class K, typename T>
274concept defines_add_for = requires(K klass, T type) {{ klass + type};};
275
276template<class K>
278
279template<class K>
281
282template<class K, typename T>
283concept defines_sub_for_s = requires(K klass, T type) {{ klass - type } -> std::same_as<K>;};
284
285template<class K, typename T>
286concept defines_sub_for = requires(K klass, T type) {{ klass - type };};
287
288template<class K>
290
291template<class K>
293
294template<class K, typename T>
295concept defines_mult_for_s = requires(K klass, T type) {{ klass * type } -> std::same_as<K>;};
296
297template<class K, typename T>
298concept defines_mult_for = requires(K klass, T type) {{ klass * type };};
299
300template<class K>
302
303template<class K>
305
306template<class K, typename T>
307concept defines_div_for_s = requires(K klass, T type) {{ klass / type } -> std::same_as<K>;};
308
309template<class K, typename T>
310concept defines_div_for = requires(K klass, T type) {{ klass / type };};
311
312template<class K>
314
315template<class K>
317
318template<class K, typename T>
319concept defines_mod_for_s = requires(K klass, T type) {{ klass % type } -> std::same_as<K>;};
320
321template<class K, typename T>
322concept defines_mod_for = requires(K klass, T type) {{ klass % type };};
323
324template<class K>
326
327template<class K>
329
330template<class K>
331concept defines_bit_not_s = requires(K klass) {{ ~klass } -> std::same_as<K>;};
332
333template<class K>
334concept defines_bit_not = requires(K klass) {{ ~klass };};
335
336template<class K, typename T>
337concept defines_bit_and_for_s = requires(K klass, T type) {{ klass & type } -> std::same_as<K>;};
338
339template<class K, typename T>
340concept defines_bit_and_for = requires(K klass, T type) {{ klass & type };};
341
342template<class K>
344
345template<class K>
347
348template<class K, typename T>
349concept defines_bit_or_for_s = requires(K klass, T type) {{ klass | type } -> std::same_as<K>;};
350
351template<class K, typename T>
352concept defines_bit_or_for = requires(K klass, T type) {{ klass | type };};
353
354template<class K>
356
357template<class K>
359
360template<class K, typename T>
361concept defines_bit_xor_for_s = requires(K klass, T type) {{ klass ^ type } -> std::same_as<K>;};
362
363template<class K, typename T>
364concept defines_bit_xor_for = requires(K klass, T type) {{ klass ^ type };};
365
366template<class K>
368
369template<class K>
371
372template<class K, typename T>
373concept defines_left_shift_for_s = requires(K klass, T type) {{ klass << type } -> std::same_as<K>;};
374
375template<class K, typename T>
376concept defines_left_shift_for = requires(K klass, T type) {{ klass << type };};
377
378template<class K>
380
381template<class K>
383
384template<class K, typename T>
385concept defines_right_shift_for_s = requires(K klass, T type) {{ klass >> type } -> std::same_as<K>;};
386
387template<class K, typename T>
388concept defines_right_shift_for = requires(K klass, T type) {{ klass >> type };};
389
390template<class K>
392
393template<class K>
395
396// Comparison operators
397template<class K, typename T>
398concept defines_equality_for_s = requires(K klass, T type) {{ klass == type } -> std::same_as<bool>;};
399
400template<class K, typename T>
401concept defines_equality_for = requires(K klass, T type) {{ klass == type };};
402
403template<class K>
405
406template<class K>
408
409template<class K, typename T>
410concept defines_inequality_for_s = requires(K klass, T type) {{ klass != type } -> std::same_as<bool>;};
411
412template<class K, typename T>
413concept defines_inequality_for = requires(K klass, T type) {{ klass != type };};
414
415template<class K>
417
418template<class K>
420
421template<class K, typename T>
422concept defines_less_than_for_s = requires(K klass, T type) {{ klass < type } -> std::same_as<bool>;};
423
424template<class K, typename T>
425concept defines_less_than_for = requires(K klass, T type) {{ klass < type };};
426
427template<class K>
429
430template<class K>
432
433template<class K, typename T>
434concept defines_greater_than_for_s = requires(K klass, T type) {{ klass > type } -> std::same_as<bool>;};
435
436template<class K, typename T>
437concept defines_greater_than_for = requires(K klass, T type) {{ klass > type };};
438
439template<class K>
441
442template<class K>
444
445template<class K, typename T>
446concept defines_less_than_equal_for_s = requires(K klass, T type) {{ klass <= type } -> std::same_as<bool>;};
447
448template<class K, typename T>
449concept defines_less_than_equal_for = requires(K klass, T type) {{ klass <= type };};
450
451template<class K>
453
454template<class K>
456
457template<class K, typename T>
458concept defines_greater_than_equal_for_s = requires(K klass, T type) {{ klass >= type } -> std::same_as<bool>;};
459
460template<class K, typename T>
461concept defines_greater_than_equal_for = requires(K klass, T type) {{ klass >= type };};
462
463template<class K>
465
466template<class K>
468
469template<class K, typename T>
470concept defines_three_way_comp_for_s = requires(K klass, T type) {{ klass <=> type } -> std::convertible_to<std::partial_ordering>;};
471
472template<class K, typename T>
473concept defines_three_way_comp_for = requires(K klass, T type) {{ klass <=> type };};
474
475template<class K>
477
478template<class K>
480
481// Trait
482template<class K>
483concept arithmetic = std::is_arithmetic_v<K>;
484
485template<class K>
486concept fundamental = std::is_fundamental_v<K>;
487
488template<class K>
489concept traverseable = std::bidirectional_iterator<typename K::const_iterator> &&
490 std::is_default_constructible_v<K> &&
491 requires(K klass) {{ klass.size() } -> std::integral<>;};
492
493template<typename F, typename T>
495
496// Conversion
497template<class K, typename T>
498concept static_castable_to = requires(K klass) {{ static_cast<T>(klass) };};
499
500// Grouping
501template<class K, class ... L>
502concept any_of = (std::same_as<K, L> || ...);
503
504// Template
505template<typename K, template <typename...> class L>
506concept specializes = is_specialization_of_v<K, L>;
507
508// Similar interface types
509template<typename T>
512
513template<typename T>
516
517}
518
519#endif // QX_CONCEPTS_H
Specifies that a type is one of several types.
Definition qx-concepts.h:502
Specifies that a type is an arithmetic type.
Definition qx-concepts.h:483
Specifies that a type can act as a comparator.
Definition qx-concepts.h:494
Specifies that a type defines an addition assignment operator for another type (with strict return).
Definition qx-concepts.h:32
Specifies that a type defines an addition assignment operator for another type.
Definition qx-concepts.h:35
Specifies that a type defines an addition assignment operator for itself (with strict return).
Definition qx-concepts.h:38
Specifies that a type defines an addition assignment operator for itself.
Definition qx-concepts.h:41
Specifies that a type defines an addition operator for another type (with strict return).
Definition qx-concepts.h:271
Specifies that a type defines an addition operator for another type.
Definition qx-concepts.h:274
Specifies that a type defines an addition operator for itself (with strict return).
Definition qx-concepts.h:277
Specifies that a type defines an addition operator for itself.
Definition qx-concepts.h:280
Specifies that a type defines an address-of operator (with strict return).
Definition qx-concepts.h:221
Specifies that a type defines an address-of operator.
Definition qx-concepts.h:224
Specifies that a type defines a logical AND operator for another type (with strict return).
Definition qx-concepts.h:184
Specifies that a type defines a logical AND operator for another type.
Definition qx-concepts.h:187
Specifies that a type defines a logical AND operator for itself (with strict return)....
Definition qx-concepts.h:190
Specifies that a type defines a logical AND operator for itself.
Definition qx-concepts.h:193
Specifies that a type defines a simple assignment operator for another type (with strict return).
Definition qx-concepts.h:20
Specifies that a type defines a simple assignment operator for another type.
Definition qx-concepts.h:23
Specifies that a type defines a simple assignment operator for itself (with strict return).
Definition qx-concepts.h:26
Specifies that a type defines a simple assignment operator for itself.
Definition qx-concepts.h:29
Specifies that a type defines a bitwise AND assignment operator for another type (with strict return)...
Definition qx-concepts.h:92
Specifies that a type defines a bitwise AND assignment operator for another type.
Definition qx-concepts.h:95
Specifies that a type defines a bitwise AND assignment operator for itself (with strict return).
Definition qx-concepts.h:98
Specifies that a type defines a bitwise AND assignment operator for itself.
Definition qx-concepts.h:101
Specifies that a type defines a bitwise AND operator for another type (with strict return).
Definition qx-concepts.h:337
Specifies that a type defines a bitwise AND operator for another type.
Definition qx-concepts.h:340
Specifies that a type defines a bitwise AND operator for itself (with strict return).
Definition qx-concepts.h:343
Specifies that a type defines a bitwise AND operator for itself.
Definition qx-concepts.h:346
Specifies that a type defines a bitwise NOT operator (with strict return).
Definition qx-concepts.h:331
Specifies that a type defines a bitwise NOT operator.
Definition qx-concepts.h:334
Specifies that a type defines a bitwise OR assignment operator for another type (with strict return).
Definition qx-concepts.h:104
Specifies that a type defines a bitwise OR assignment operator for another type.
Definition qx-concepts.h:107
Specifies that a type defines a bitwise OR assignment operator for itself (with strict return).
Definition qx-concepts.h:110
Specifies that a type defines a bitwise OR assignment operator for itself.
Definition qx-concepts.h:113
Specifies that a type defines a bitwise OR operator for another type (with strict return).
Definition qx-concepts.h:349
Specifies that a type defines a bitwise OR operator for another type.
Definition qx-concepts.h:352
Specifies that a type defines a bitwise OR operator for itself (with strict return).
Definition qx-concepts.h:355
Specifies that a type defines a bitwise OR operator for itself.
Definition qx-concepts.h:358
Specifies that a type defines a bitwise XOR assignment operator for another type (with strict return)...
Definition qx-concepts.h:116
Specifies that a type defines a bitwise XOR assignment operator for another type.
Definition qx-concepts.h:119
Specifies that a type defines a bitwise XOR assignment operator for itself (with strict return).
Definition qx-concepts.h:122
Specifies that a type defines a bitwise XOR assignment operator for itself.
Definition qx-concepts.h:125
Specifies that a type defines a bitwise XOR operator for another type (with strict return).
Definition qx-concepts.h:361
Specifies that a type defines a bitwise XOR operator for another type.
Definition qx-concepts.h:364
Specifies that a type defines a bitwise XOR operator for itself (with strict return).
Definition qx-concepts.h:367
Specifies that a type defines a bitwise XOR operator for itself.
Definition qx-concepts.h:370
Specifies that a type defines a call operator for the specified argument types (with strict return).
Definition qx-concepts.h:240
Specifies that a type defines a call operator for the specified argument types.
Definition qx-concepts.h:243
Specifies that a type defines a argumentless call operator (with strict return).
Definition qx-concepts.h:246
Specifies that a type defines a argumentless call operator.
Definition qx-concepts.h:249
Specifies that a type defines a comma operator for another type (with strict return).
Definition qx-concepts.h:252
Specifies that a type defines a comma operator for another type.
Definition qx-concepts.h:255
Specifies that a type defines a division assignment operator for another type (with strict return).
Definition qx-concepts.h:68
Specifies that a type defines a division assignment operator for another type.
Definition qx-concepts.h:71
Specifies that a type defines a division assignment operator for itself (with strict return).
Definition qx-concepts.h:74
Specifies that a type defines a division assignment operator for itself.
Definition qx-concepts.h:77
Specifies that a type defines a division operator for another type (with strict return).
Definition qx-concepts.h:307
Specifies that a type defines a division operator for another type.
Definition qx-concepts.h:310
Specifies that a type defines a division operator for itself (with strict return).
Definition qx-concepts.h:313
Specifies that a type defines a division operator for itself.
Definition qx-concepts.h:316
Specifies that a type defines an equal to operator for another type (with strict return).
Definition qx-concepts.h:398
Specifies that a type defines an equal to operator for another type.
Definition qx-concepts.h:401
Specifies that a type defines an equal to operator for itself (with strict return).
Definition qx-concepts.h:404
Specifies that a type defines an equal to operator for itself (with strict return).
Definition qx-concepts.h:407
Specifies that a type defines a greater than or equal to operator for another type (with strict retur...
Definition qx-concepts.h:458
Specifies that a type defines a greater than or equal to operator for another type.
Definition qx-concepts.h:461
Specifies that a type defines a greater than or equal to operator for itself (with strict return).
Definition qx-concepts.h:464
Specifies that a type defines a greater than or equal to operator for itself.
Definition qx-concepts.h:467
Specifies that a type defines a greater than operator for another type (with strict return).
Definition qx-concepts.h:434
Specifies that a type defines a greater than operator for another type.
Definition qx-concepts.h:437
Specifies that a type defines a greater than operator for itself (with strict return).
Definition qx-concepts.h:440
Specifies that a type defines a greater than operator for itself.
Definition qx-concepts.h:443
Specifies that a type defines an indirection operator (with strict return).
Definition qx-concepts.h:215
Specifies that a type defines an indirection operator.
Definition qx-concepts.h:218
Specifies that a type defines a not equal to operator for another type (with strict return).
Definition qx-concepts.h:410
Specifies that a type defines a not equal to operator for another type.
Definition qx-concepts.h:413
Specifies that a type defines a not equal to operator for itself (with strict return).
Definition qx-concepts.h:416
Specifies that a type defines a not equal to operator for itself (with strict return).
Definition qx-concepts.h:419
Specifies that a type defines a left shift assignment operator for another type (with strict return).
Definition qx-concepts.h:128
Specifies that a type defines a left shift assignment operator for another type.
Definition qx-concepts.h:131
Specifies that a type defines a left shift assignment operator for itself (with strict return).
Definition qx-concepts.h:134
Specifies that a type defines a left shift assignment operator for itself.
Definition qx-concepts.h:137
Specifies that a type defines a left shift operator for another type (with strict return).
Definition qx-concepts.h:373
Specifies that a type defines a left shift operator for another type.
Definition qx-concepts.h:376
Specifies that a type defines a left shift operator for itself (with strict return).
Definition qx-concepts.h:379
Specifies that a type defines a left shift operator for itself.
Definition qx-concepts.h:382
Specifies that a type defines a less than or equal to operator for another type (with strict return).
Definition qx-concepts.h:446
Specifies that a type defines a less than or equal to operator for another type.
Definition qx-concepts.h:449
Specifies that a type defines a less than or equal to operator for itself (with strict return).
Definition qx-concepts.h:452
Specifies that a type defines a less than or equal to operator for itself.
Definition qx-concepts.h:455
Specifies that a type defines a less than operator for another type (with strict return).
Definition qx-concepts.h:422
Specifies that a type defines a less than operator for another type.
Definition qx-concepts.h:425
Specifies that a type defines a less than operator for itself (with strict return).
Definition qx-concepts.h:428
Specifies that a type defines a less than operator for itself.
Definition qx-concepts.h:431
Specifies that a type defines a modulo assignment operator for another type (with strict return).
Definition qx-concepts.h:80
Specifies that a type defines a modulo assignment operator for another type.
Definition qx-concepts.h:83
Specifies that a type defines a modulo assignment operator for itself (with strict return).
Definition qx-concepts.h:86
Specifies that a type defines a modulo assignment operator for itself.
Definition qx-concepts.h:89
Specifies that a type defines a modulo operator for another type (with strict return).
Definition qx-concepts.h:319
Specifies that a type defines a modulo operator for another type.
Definition qx-concepts.h:322
Specifies that a type defines a modulo operator for itself (with strict return).
Definition qx-concepts.h:325
Specifies that a type defines a modulo operator for itself.
Definition qx-concepts.h:328
Specifies that a type defines a multiplication assignment operator for another type (with strict retu...
Definition qx-concepts.h:56
Specifies that a type defines a multiplication assignment operator for another type.
Definition qx-concepts.h:59
Specifies that a type defines a multiplication assignment operator for itself (with strict return).
Definition qx-concepts.h:62
Specifies that a type defines a multiplication assignment operator for itself.
Definition qx-concepts.h:65
Specifies that a type defines a multiplication operator for another type (with strict return).
Definition qx-concepts.h:295
Specifies that a type defines a multiplication operator for another type.
Definition qx-concepts.h:298
Specifies that a type defines a multiplication operator for itself (with strict return).
Definition qx-concepts.h:301
Specifies that a type defines a multiplication operator for itself.
Definition qx-concepts.h:304
Specifies that a type defines a negation operator (with strict return).
Definition qx-concepts.h:178
Specifies that a type defines a negation operator.
Definition qx-concepts.h:181
Specifies that a type defines a logical OR operator for another type (with strict return).
Definition qx-concepts.h:196
Specifies that a type defines a logical OR operator for another type.
Definition qx-concepts.h:199
Specifies that a type defines a logical OR operator for itself (with strict return).
Definition qx-concepts.h:202
Specifies that a type defines a logical OR operator for itself.
Definition qx-concepts.h:205
Specifies that a type defines a post-decrement operator (with strict return).
Definition qx-concepts.h:171
Specifies that a type defines a post-decrement operator.
Definition qx-concepts.h:174
Specifies that a type defines a post-increment operator (with strict return).
Definition qx-concepts.h:165
Specifies that a type defines a post-increment operator.
Definition qx-concepts.h:168
Specifies that a type defines a pre-decrement operator (with strict return).
Definition qx-concepts.h:159
Specifies that a type defines a pre-decrement operator.
Definition qx-concepts.h:162
Specifies that a type defines a pre-increment operator (with strict return).
Definition qx-concepts.h:153
Specifies that a type defines a pre-increment operator.
Definition qx-concepts.h:156
Specifies that a type defines a pointer to member of pointer operator (with strict return).
Definition qx-concepts.h:233
Specifies that a type defines a pointer to member of pointer operator.
Definition qx-concepts.h:236
Specifies that a type defines a right shift assignment operator for another type (with strict return)...
Definition qx-concepts.h:140
Specifies that a type defines a right shift assignment operator for another type.
Definition qx-concepts.h:143
Specifies that a type defines a right shift assignment operator for itself (with strict return).
Definition qx-concepts.h:146
Specifies that a type defines a right shift assignment operator for itself.
Definition qx-concepts.h:149
Specifies that a type defines a right shift operator for another type (with strict return).
Definition qx-concepts.h:385
Specifies that a type defines a right shift operator for another type.
Definition qx-concepts.h:388
Specifies that a type defines a right shift operator for itself (with strict return).
Definition qx-concepts.h:391
Specifies that a type defines a right shift operator for itself.
Definition qx-concepts.h:394
Specifies that a type defines a subtraction assignment operator for another type (with strict return)...
Definition qx-concepts.h:44
Specifies that a type defines a subtraction assignment operator for another type.
Definition qx-concepts.h:47
Specifies that a type defines a subtraction assignment operator for itself (with strict return).
Definition qx-concepts.h:50
Specifies that a type defines a subtraction assignment operator for itself.
Definition qx-concepts.h:53
Specifies that a type defines a subtraction operator for another type (with strict return).
Definition qx-concepts.h:283
Specifies that a type defines a subtraction operator for another type.
Definition qx-concepts.h:286
Specifies that a type defines a subtraction operator for itself (with strict return).
Definition qx-concepts.h:289
Specifies that a type defines a subtraction operator for itself.
Definition qx-concepts.h:292
Specifies that a type defines a subscript operator for another type (with strict return).
Definition qx-concepts.h:209
Specifies that a type defines a subscript operator for another type.
Definition qx-concepts.h:212
Specifies that a type defines a three-way comparison operator for another type (with strict return).
Definition qx-concepts.h:470
Specifies that a type defines a three-way comparison operator for another type.
Definition qx-concepts.h:473
Specifies that a type defines a three-way comparison operator for itself (with strict return).
Definition qx-concepts.h:476
Specifies that a type defines a three-way comparison operator for itself.
Definition qx-concepts.h:479
Specifies that a type defines a unary minus operator (with strict return).
Definition qx-concepts.h:265
Specifies that a type defines a unary minus operator.
Definition qx-concepts.h:268
Specifies that a type defines a unary plus operator (with strict return).
Definition qx-concepts.h:259
Specifies that a type defines a unary plus operator.
Definition qx-concepts.h:262
Specifies that a type is a fundamental type.
Definition qx-concepts.h:486
Specifies that a type is a Qt-based associative container type.
Definition qx-concepts.h:510
Specifies that a type is a Qt-based collection type.
Definition qx-concepts.h:514
Specifies that a type is a specialization of a template.
Definition qx-concepts.h:506
Specifies that a type can be statically cast to another type.
Definition qx-concepts.h:498
Specifies that a type is a valid type for Qx::Traverser.
Definition qx-concepts.h:489
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-abstracterror.cpp:13
The qx-typetraits header file provides a library of general purpose type-traits as an extension of th...