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.