![]() |
Home | Libraries | People | FAQ | More |
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.