Lines Matching refs:regular_invocable
23 constexpr bool result = std::regular_invocable<R(Args...), Args...>; in check_invocable()
24 static_assert(std::regular_invocable<R(Args...) noexcept, Args...> == result); in check_invocable()
25 static_assert(std::regular_invocable<R (*)(Args...), Args...> == result); in check_invocable()
26 static_assert(std::regular_invocable<R (*)(Args...) noexcept, Args...> == in check_invocable()
28 static_assert(std::regular_invocable<R (&)(Args...), Args...> == result); in check_invocable()
29 static_assert(std::regular_invocable<R (&)(Args...) noexcept, Args...> == in check_invocable()
45 static_assert(std::regular_invocable<void (*)(int const&), int&>);
46 static_assert(std::regular_invocable<void (*)(int const&), int&&>);
47 static_assert(std::regular_invocable<void (*)(int volatile&), int&>);
48 static_assert(std::regular_invocable<void (*)(int const volatile&), int&>);
50 static_assert(!std::regular_invocable<void(), int>);
51 static_assert(!std::regular_invocable<void(int)>);
52 static_assert(!std::regular_invocable<void(int*), double*>);
53 static_assert(!std::regular_invocable<void (*)(int&), double*>);
54 static_assert(std::regular_invocable<int S::*, std::unique_ptr<S> >);
55 static_assert(std::regular_invocable<int S::*, std::shared_ptr<S> >);
56 static_assert(!std::regular_invocable<void (*)(int&&), int&>);
57 static_assert(!std::regular_invocable<void (*)(int&&), int const&>);
59 static_assert(!std::regular_invocable<void>);
60 static_assert(!std::regular_invocable<void*>);
61 static_assert(!std::regular_invocable<int>);
62 static_assert(!std::regular_invocable<int&>);
63 static_assert(!std::regular_invocable<int&&>);
69 static_assert(std::regular_invocable<function_object>);
70 static_assert(!std::regular_invocable<function_object const>);
71 static_assert(!std::regular_invocable<function_object volatile>);
72 static_assert(!std::regular_invocable<function_object const volatile>);
73 static_assert(std::regular_invocable<function_object&>);
74 static_assert(!std::regular_invocable<function_object const&>);
75 static_assert(!std::regular_invocable<function_object volatile&>);
76 static_assert(!std::regular_invocable<function_object const volatile&>);
81 static_assert(std::regular_invocable<const_function_object, int>);
82 static_assert(std::regular_invocable<const_function_object const, int>);
83 static_assert(!std::regular_invocable<const_function_object volatile, int>);
85 !std::regular_invocable<const_function_object const volatile, int>);
86 static_assert(std::regular_invocable<const_function_object&, int>);
87 static_assert(std::regular_invocable<const_function_object const&, int>);
88 static_assert(!std::regular_invocable<const_function_object volatile&, int>);
90 !std::regular_invocable<const_function_object const volatile&, int>);
95 static_assert(std::regular_invocable<volatile_function_object, int, int>);
97 !std::regular_invocable<volatile_function_object const, int, int>);
99 std::regular_invocable<volatile_function_object volatile, int, int>);
101 !std::regular_invocable<volatile_function_object const volatile, int, int>);
102 static_assert(std::regular_invocable<volatile_function_object&, int, int>);
104 !std::regular_invocable<volatile_function_object const&, int, int>);
106 std::regular_invocable<volatile_function_object volatile&, int, int>);
107 static_assert(!std::regular_invocable<volatile_function_object const volatile&,
113 static_assert(std::regular_invocable<cv_function_object, int*>);
114 static_assert(std::regular_invocable<cv_function_object const, int*>);
115 static_assert(std::regular_invocable<cv_function_object volatile, int*>);
116 static_assert(std::regular_invocable<cv_function_object const volatile, int*>);
117 static_assert(std::regular_invocable<cv_function_object&, int*>);
118 static_assert(std::regular_invocable<cv_function_object const&, int*>);
119 static_assert(std::regular_invocable<cv_function_object volatile&, int*>);
120 static_assert(std::regular_invocable<cv_function_object const volatile&, int*>);
125 static_assert(!std::regular_invocable<lvalue_function_object>);
126 static_assert(!std::regular_invocable<lvalue_function_object const>);
127 static_assert(!std::regular_invocable<lvalue_function_object volatile>);
128 static_assert(!std::regular_invocable<lvalue_function_object const volatile>);
129 static_assert(std::regular_invocable<lvalue_function_object&>);
130 static_assert(!std::regular_invocable<lvalue_function_object const&>);
131 static_assert(!std::regular_invocable<lvalue_function_object volatile&>);
132 static_assert(!std::regular_invocable<lvalue_function_object const volatile&>);
137 static_assert(std::regular_invocable<lvalue_const_function_object, int>);
138 static_assert(std::regular_invocable<lvalue_const_function_object const, int>);
140 !std::regular_invocable<lvalue_const_function_object volatile, int>);
142 !std::regular_invocable<lvalue_const_function_object const volatile, int>);
143 static_assert(std::regular_invocable<lvalue_const_function_object&, int>);
144 static_assert(std::regular_invocable<lvalue_const_function_object const&, int>);
146 !std::regular_invocable<lvalue_const_function_object volatile&, int>);
148 !std::regular_invocable<lvalue_const_function_object const volatile&, int>);
154 !std::regular_invocable<lvalue_volatile_function_object, int, int>);
156 !std::regular_invocable<lvalue_volatile_function_object const, int, int>);
157 static_assert(!std::regular_invocable<lvalue_volatile_function_object volatile,
159 static_assert(!std::regular_invocable<
162 std::regular_invocable<lvalue_volatile_function_object&, int, int>);
164 !std::regular_invocable<lvalue_volatile_function_object const&, int, int>);
165 static_assert(std::regular_invocable<lvalue_volatile_function_object volatile&,
167 static_assert(!std::regular_invocable<
173 static_assert(!std::regular_invocable<lvalue_cv_function_object, int*>);
174 static_assert(!std::regular_invocable<lvalue_cv_function_object const, int*>);
176 !std::regular_invocable<lvalue_cv_function_object volatile, int*>);
178 !std::regular_invocable<lvalue_cv_function_object const volatile, int*>);
179 static_assert(std::regular_invocable<lvalue_cv_function_object&, int*>);
180 static_assert(std::regular_invocable<lvalue_cv_function_object const&, int*>);
182 std::regular_invocable<lvalue_cv_function_object volatile&, int*>);
184 std::regular_invocable<lvalue_cv_function_object const volatile&, int*>);
189 static_assert(std::regular_invocable<rvalue_function_object>);
190 static_assert(!std::regular_invocable<rvalue_function_object const>);
191 static_assert(!std::regular_invocable<rvalue_function_object volatile>);
192 static_assert(!std::regular_invocable<rvalue_function_object const volatile>);
193 static_assert(!std::regular_invocable<rvalue_function_object&>);
194 static_assert(!std::regular_invocable<rvalue_function_object const&>);
195 static_assert(!std::regular_invocable<rvalue_function_object volatile&>);
196 static_assert(!std::regular_invocable<rvalue_function_object const volatile&>);
201 static_assert(std::regular_invocable<rvalue_const_function_object, int>);
202 static_assert(std::regular_invocable<rvalue_const_function_object const, int>);
204 !std::regular_invocable<rvalue_const_function_object volatile, int>);
206 !std::regular_invocable<rvalue_const_function_object const volatile, int>);
207 static_assert(!std::regular_invocable<rvalue_const_function_object&, int>);
209 !std::regular_invocable<rvalue_const_function_object const&, int>);
211 !std::regular_invocable<rvalue_const_function_object volatile&, int>);
213 !std::regular_invocable<rvalue_const_function_object const volatile&, int>);
219 std::regular_invocable<rvalue_volatile_function_object, int, int>);
221 !std::regular_invocable<rvalue_volatile_function_object const, int, int>);
223 std::regular_invocable<rvalue_volatile_function_object volatile, int, int>);
224 static_assert(!std::regular_invocable<
227 !std::regular_invocable<rvalue_volatile_function_object&, int, int>);
229 !std::regular_invocable<rvalue_volatile_function_object const&, int, int>);
230 static_assert(!std::regular_invocable<rvalue_volatile_function_object volatile&,
232 static_assert(!std::regular_invocable<
238 static_assert(std::regular_invocable<rvalue_cv_function_object, int*>);
239 static_assert(std::regular_invocable<rvalue_cv_function_object const, int*>);
240 static_assert(std::regular_invocable<rvalue_cv_function_object volatile, int*>);
242 std::regular_invocable<rvalue_cv_function_object const volatile, int*>);
243 static_assert(!std::regular_invocable<rvalue_cv_function_object&, int*>);
244 static_assert(!std::regular_invocable<rvalue_cv_function_object const&, int*>);
246 !std::regular_invocable<rvalue_cv_function_object volatile&, int*>);
248 !std::regular_invocable<rvalue_cv_function_object const volatile&, int*>);
258 static_assert(std::regular_invocable<multiple_overloads, multiple_overloads::A>);
259 static_assert(std::regular_invocable<multiple_overloads, multiple_overloads::B>);
260 static_assert(std::regular_invocable<multiple_overloads, int>);
261 static_assert(!std::regular_invocable<multiple_overloads, multiple_overloads::AB>);
262 static_assert(!std::regular_invocable<multiple_overloads, multiple_overloads::O>);
269 constexpr bool result = std::regular_invocable<Member, T&&, Args...>; in check_member_is_invocable()
271 static_assert(std::regular_invocable<Member, uncv_t*, Args...> == result); in check_member_is_invocable()
272 static_assert(std::regular_invocable<Member, std::unique_ptr<uncv_t>, Args...> == result); in check_member_is_invocable()
273 … static_assert(std::regular_invocable<Member, std::reference_wrapper<uncv_t>, Args...> == result); in check_member_is_invocable()
274 static_assert(!std::regular_invocable<Member, std::nullptr_t, Args...>); in check_member_is_invocable()
275 static_assert(!std::regular_invocable<Member, int, Args...>); in check_member_is_invocable()
276 static_assert(!std::regular_invocable<Member, int*, Args...>); in check_member_is_invocable()
277 static_assert(!std::regular_invocable<Member, double*, Args...>); in check_member_is_invocable()
279 static_assert(!std::regular_invocable<Member, S2*, Args...>); in check_member_is_invocable()
284 static_assert(std::regular_invocable<int S::*, S&>);
285 static_assert(std::regular_invocable<int S::*, S const&>);
286 static_assert(std::regular_invocable<int S::*, S volatile&>);
287 static_assert(std::regular_invocable<int S::*, S const volatile&>);
288 static_assert(std::regular_invocable<int S::*, S&&>);
289 static_assert(std::regular_invocable<int S::*, S const&&>);
290 static_assert(std::regular_invocable<int S::*, S volatile&&>);
291 static_assert(std::regular_invocable<int S::*, S const volatile&&>);
296 static_assert(std::regular_invocable<unqualified, S&>);
297 static_assert(!std::regular_invocable<unqualified, S const&>);
298 static_assert(!std::regular_invocable<unqualified, S volatile&>);
299 static_assert(!std::regular_invocable<unqualified, S const volatile&>);
300 static_assert(std::regular_invocable<unqualified, S&&>);
301 static_assert(!std::regular_invocable<unqualified, S const&&>);
302 static_assert(!std::regular_invocable<unqualified, S volatile&&>);
303 static_assert(!std::regular_invocable<unqualified, S const volatile&&>);
307 static_assert(std::regular_invocable<const_qualified, S&>);
308 static_assert(std::regular_invocable<const_qualified, S const&>);
309 static_assert(!std::regular_invocable<const_qualified, S volatile&>);
310 static_assert(!std::regular_invocable<const_qualified, S const volatile&>);
311 static_assert(std::regular_invocable<const_qualified, S&&>);
312 static_assert(std::regular_invocable<const_qualified, S const&&>);
313 static_assert(!std::regular_invocable<const_qualified, S volatile&&>);
314 static_assert(!std::regular_invocable<const_qualified, S const volatile&&>);
319 static_assert(std::regular_invocable<volatile_qualified, S&>);
320 static_assert(!std::regular_invocable<volatile_qualified, S const&>);
321 static_assert(std::regular_invocable<volatile_qualified, S volatile&>);
322 static_assert(!std::regular_invocable<volatile_qualified, S const volatile&>);
323 static_assert(std::regular_invocable<volatile_qualified, S&&>);
324 static_assert(!std::regular_invocable<volatile_qualified, S const&&>);
325 static_assert(std::regular_invocable<volatile_qualified, S volatile&&>);
326 static_assert(!std::regular_invocable<volatile_qualified, S const volatile&&>);
331 static_assert(std::regular_invocable<cv_qualified, S&>);
332 static_assert(std::regular_invocable<cv_qualified, S const&>);
333 static_assert(std::regular_invocable<cv_qualified, S volatile&>);
334 static_assert(std::regular_invocable<cv_qualified, S const volatile&>);
335 static_assert(std::regular_invocable<cv_qualified, S&&>);
336 static_assert(std::regular_invocable<cv_qualified, S const&&>);
337 static_assert(std::regular_invocable<cv_qualified, S volatile&&>);
338 static_assert(std::regular_invocable<cv_qualified, S const volatile&&>);
342 static_assert(std::regular_invocable<lvalue_qualified, S&>);
343 static_assert(!std::regular_invocable<lvalue_qualified, S const&>);
344 static_assert(!std::regular_invocable<lvalue_qualified, S volatile&>);
345 static_assert(!std::regular_invocable<lvalue_qualified, S const volatile&>);
346 static_assert(!std::regular_invocable<lvalue_qualified, S&&>);
347 static_assert(!std::regular_invocable<lvalue_qualified, S const&&>);
348 static_assert(!std::regular_invocable<lvalue_qualified, S volatile&&>);
349 static_assert(!std::regular_invocable<lvalue_qualified, S const volatile&&>);
353 static_assert(std::regular_invocable<lvalue_const_qualified, S&>);
354 static_assert(std::regular_invocable<lvalue_const_qualified, S const&>);
355 static_assert(!std::regular_invocable<lvalue_const_qualified, S volatile&>);
357 !std::regular_invocable<lvalue_const_qualified, S const volatile&>);
358 static_assert(std::regular_invocable<lvalue_const_qualified, S&&>);
359 static_assert(std::regular_invocable<lvalue_const_qualified, S const&&>);
360 static_assert(!std::regular_invocable<lvalue_const_qualified, S volatile&&>);
362 !std::regular_invocable<lvalue_const_qualified, S const volatile&&>);
366 static_assert(std::regular_invocable<lvalue_volatile_qualified, S&>);
367 static_assert(!std::regular_invocable<lvalue_volatile_qualified, S const&>);
368 static_assert(std::regular_invocable<lvalue_volatile_qualified, S volatile&>);
370 !std::regular_invocable<lvalue_volatile_qualified, S const volatile&>);
371 static_assert(!std::regular_invocable<lvalue_volatile_qualified, S&&>);
372 static_assert(!std::regular_invocable<lvalue_volatile_qualified, S const&&>);
373 static_assert(!std::regular_invocable<lvalue_volatile_qualified, S volatile&&>);
375 !std::regular_invocable<lvalue_volatile_qualified, S const volatile&&>);
379 static_assert(std::regular_invocable<lvalue_cv_qualified, S&>);
380 static_assert(std::regular_invocable<lvalue_cv_qualified, S const&>);
381 static_assert(std::regular_invocable<lvalue_cv_qualified, S volatile&>);
382 static_assert(std::regular_invocable<lvalue_cv_qualified, S const volatile&>);
383 static_assert(!std::regular_invocable<lvalue_cv_qualified, S&&>);
384 static_assert(!std::regular_invocable<lvalue_cv_qualified, S const&&>);
385 static_assert(!std::regular_invocable<lvalue_cv_qualified, S volatile&&>);
386 static_assert(!std::regular_invocable<lvalue_cv_qualified, S const volatile&&>);
389 static_assert(!std::regular_invocable<rvalue_unqualified, S&>);
390 static_assert(!std::regular_invocable<rvalue_unqualified, S const&>);
391 static_assert(!std::regular_invocable<rvalue_unqualified, S volatile&>);
392 static_assert(!std::regular_invocable<rvalue_unqualified, S const volatile&>);
393 static_assert(std::regular_invocable<rvalue_unqualified, S&&>);
394 static_assert(!std::regular_invocable<rvalue_unqualified, S const&&>);
395 static_assert(!std::regular_invocable<rvalue_unqualified, S volatile&&>);
396 static_assert(!std::regular_invocable<rvalue_unqualified, S const volatile&&>);
399 static_assert(!std::regular_invocable<rvalue_const_unqualified, S&>);
400 static_assert(!std::regular_invocable<rvalue_const_unqualified, S const&>);
401 static_assert(!std::regular_invocable<rvalue_const_unqualified, S volatile&>);
403 !std::regular_invocable<rvalue_const_unqualified, S const volatile&>);
404 static_assert(std::regular_invocable<rvalue_const_unqualified, S&&>);
405 static_assert(std::regular_invocable<rvalue_const_unqualified, S const&&>);
406 static_assert(!std::regular_invocable<rvalue_const_unqualified, S volatile&&>);
408 !std::regular_invocable<rvalue_const_unqualified, S const volatile&&>);
411 static_assert(!std::regular_invocable<rvalue_volatile_unqualified, S&>);
412 static_assert(!std::regular_invocable<rvalue_volatile_unqualified, S const&>);
414 !std::regular_invocable<rvalue_volatile_unqualified, S volatile&>);
416 !std::regular_invocable<rvalue_volatile_unqualified, S const volatile&>);
417 static_assert(std::regular_invocable<rvalue_volatile_unqualified, S&&>);
418 static_assert(!std::regular_invocable<rvalue_volatile_unqualified, S const&&>);
420 std::regular_invocable<rvalue_volatile_unqualified, S volatile&&>);
422 !std::regular_invocable<rvalue_volatile_unqualified, S const volatile&&>);
425 static_assert(!std::regular_invocable<rvalue_cv_unqualified, S&>);
426 static_assert(!std::regular_invocable<rvalue_cv_unqualified, S const&>);
427 static_assert(!std::regular_invocable<rvalue_cv_unqualified, S volatile&>);
429 !std::regular_invocable<rvalue_cv_unqualified, S const volatile&>);
430 static_assert(std::regular_invocable<rvalue_cv_unqualified, S&&>);
431 static_assert(std::regular_invocable<rvalue_cv_unqualified, S const&&>);
432 static_assert(std::regular_invocable<rvalue_cv_unqualified, S volatile&&>);
434 std::regular_invocable<rvalue_cv_unqualified, S const volatile&&>);
450 requires std::regular_invocable<F, Args...> && true