### async_result

An interface for customising the behaviour of an initiating function.

    template<
        typename CompletionToken,
        typename... Signatures>
    class async_result

##### Types

Name | Description
--- | ---
completion_handler_type | The concrete completion handler type for the specific signature.
return_type | The return type of the initiating function.

##### Member Functions

Name | Description
--- | ---
async_result [constructor] | Construct an async result from a given handler.
get | Obtain the value to be returned from the initiating function.
initiate [static] | Initiate the asynchronous operation that will produce the result, and obtain the value to be returned from the initiating function.

The `async_result` traits class is used for determining:

- the concrete completion handler type to be called at the end of the asynchronous operation;
- the initiating function return type; and
- how the return value of the initiating function is obtained.

The trait allows the handler and return types to be determined at the point where the specific completion handler signature is known.

This template may be specialised for user-defined completion token types. The primary template assumes that the CompletionToken is the completion handler.

##### Requirements

Header: `asio/async_result.hpp`

Convenience header: `asio.hpp`