std::invocable, std::regular_invocable
Определено в заголовочном файле <concepts>
|
||
template< class F, class... Args > concept invocable = |
(начиная с C++20) | |
template< class F, class... Args > concept regular_invocable = std::invocable<F, Args...>; |
(начиная с C++20) | |
Концепт invocable
определяет, что вызываемый тип F
может быть вызван с набором аргументов Args...
с использованием шаблона функции std::invoke.
Концепт regular_invocable
дополняет концепт invocable
, требуя, чтобы выражение invoke
сохраняло равенство и не изменяло ни объект функции, ни аргументы.
Содержание |
[править] Сохранение равенства
Выражения, объявленные в выражениях requires концептов стандартной библиотеки, должны сохранять равенство (если не указано иное).
[править] Примечание
Различие между invocable
и regular_invocable
чисто семантическое.
Генератор случайных чисел может соответствовать invocable
, но не соответствовать regular_invocable
(исключая комичные).
[править] Смотрите также
проверяет, может ли тип быть вызван (как если бы std::invoke) с заданными типами аргументов (шаблон класса) |
[править] Внешние ссылки
1. | Примечательный пример генератора случайных чисел, который соответствует как invocable , так и regular_invocable .
|