![]() |
The library describes a standard set of requirements for executors. A type meeting Executor requirements shall embody a set of rules for determining how submitted function objects are to be executed.
An executor type X shall
satisfy the requirements of CopyConstructible
(C++ Std, [copyconstructible]) types. No constructor, comparison operator,
copy operation, move operation, swap operation, or member functions context, on_work_started
and on_work_finished on these
types shall exit via an exception.
The executor copy constructor, comparison operators, and member functions defined in these requirements shall not introduce data races as a result of concurrent calls to those functions from different threads.
In the table below, X denotes
an executor class, x denotes
a value of type X&,
x1 and x2
denote values of type const X&,
x3 denotes a value of type
X&&,
f denotes a MoveConstructible (C++ Std, [moveconstructible])
function object callable with zero arguments, a
denotes a value of type A
meeting Allocator requirements
(C++ Std, [allocator.requirements]), t
denotes an object of type T,
and u denotes an identifier.
Table 12. Executor requirements
|
expression |
type |
assertion/note |
|---|---|---|
|
|
Shall not exit via an exception. |
|
|
|
Shall not exit via an exception. |
|
|
|
|
Shall not exit via an exception. |
|
|
|
Shall not exit via an exception. |
|
|
|
Shall not exit via an exception. |
|
|
Shall not exit via an exception. |
|
|
|
Shall not exit via an exception. |
|
|
|
Effects: Calls |
|
|
|
Effects: Calls |
|
|
|
Effects: Calls |