Difference between revisions of "cpp/iterator/indirectly unary invocable"
(title) |
m |
||
Line 29: | Line 29: | ||
{{dcl end}} | {{dcl end}} | ||
− | The concepts {{tt|indirectly_unary_invocable}} and {{tt|indirectly_regular_unary_invocable}} specify requirements for algorithms that call (regular) unary invocables as their arguments. The key difference between these concepts and {{ | + | The concepts {{tt|indirectly_unary_invocable}} and {{tt|indirectly_regular_unary_invocable}} specify requirements for algorithms that call (regular) unary invocables as their arguments. The key difference between these concepts and {{lc|std::invocable}} is that they are applied to the type the {{tt|I}} references, rather than {{tt|I}} itself. |
===Semantic requirements=== | ===Semantic requirements=== |
Revision as of 00:29, 28 July 2020
Defined in header <iterator>
|
||
template< class F, class I > concept indirectly_unary_invocable = |
(since C++20) | |
template< class F, class I > concept indirectly_regular_unary_invocable = |
(since C++20) | |
The concepts indirectly_unary_invocable
and indirectly_regular_unary_invocable
specify requirements for algorithms that call (regular) unary invocables as their arguments. The key difference between these concepts and std::invocable is that they are applied to the type the I
references, rather than I
itself.
Semantic requirements
Each concept is modeled by F
and I
only if all concepts it subsume are modeled.
Notes
The distinction between indirectly_unary_invocable
and indirectly_regular_unary_invocable
is purely semantic.