![]() |
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.