13 Asynchronous model [async]

13.2 Requirements [async.reqmts]

13.2.7 Requirements on asynchronous operations [async.reqmts.async]

13.2.7.8 I/O executor [async.reqmts.async.io.exec]

An asynchronous operation has an associated executor satisfying the Executor ([async.reqmts.executor]) requirements. If not otherwise specified by the asynchronous operation, this associated executor is an object of type system_executor.

All asynchronous operations in this document have an associated executor object that is determined as follows:

  • If the initiating function is a member function, the associated executor is that returned by the get_executor member function on the same object.

  • If the initiating function is not a member function, the associated executor is that returned by the get_executor member function of the first argument to the initiating function.

Let Executor1 be the type of the associated executor. Let ex1 be a value of type Executor1, representing the associated executor object obtained as described above.