[concept.regularinvocable] (original) (raw)

18 Concepts library [concepts]

18.7 Callable concepts [concepts.callable]

18.7.3 Concept regular_invocable [concept.regularinvocable]

🔗

template<class F, class... Args> concept [regular_invocable](#concept:regular%5Finvocable "18.7.3 Concept regular_­invocable [concept.regularinvocable]") = [invocable](concept.invocable#concept:invocable "18.7.2 Concept invocable [concept.invocable]")<F, Args...>;

1

#

The invoke function call expression shall be equality-preserving ([concepts.equality]) and shall not modify the function object or the arguments.

[Note 1:

This requirement supersedes the annotation in the definition ofinvocable.

— _end note_]

2

#

[Example 1:

A random number generator does not model regular_invocable.

— _end example_]

3

#

[Note 2:

The distinction between invocable and regular_invocableis purely semantic.

— _end note_]