![]() |
Initiating functions:
— are function templates with template parameter CompletionToken;
— accept, as the final parameter, a completion token
object token of type CompletionToken;
— specify a completion signature, which is a call signature
(C++Std [func.def]) Signature that determines the arguments
to the completion handler.
An initiating function determines the type CompletionHandler
of its completion handler function object by performing typename
async_result<decay_t<CompletionToken>, Signature>::completion_handler_type.
The completion handler object completion_handler is initialized
with forward<CompletionToken>(token). [Note:
No other requirements are placed on the type CompletionToken.
—end note]
The type CompletionHandler must satisfy the requirements of
Destructible (C++Std [destructible]) and MoveConstructible
(C++Std [moveconstructible]), and be callable with the specified call signature.
In this library, all initiating functions specify a Completion
signature element that defines the call signature Signature.
The Completion signature elements in this Technical
Specification have named parameters, and the results of an asynchronous
operation are specified in terms of these names.