#### Supporting Library Elements

The Asio asynchronous model is enabled by the library elements listed in the table below.

Library Element | Description
--- | ---
`completion_signature` concept | Defines valid completion signature forms.
`completion_handler_for` concept | Determines whether a completion handler is callable with a given set of completion signatures.
async_result trait | Converts a completion signature and completion token into a concrete completion handler, and launches the operation.
async_initiate function | Helper function to simplify use of the `async_result` trait.
`completion_token_for` concept | Determines whether a completion token produces a completion handler for a given set of completion signatures.
associator trait | Automatically propagates all associators through layers of abstraction.
associated_executor trait, `associated_executor_t` type alias, and get_associated_executor function | Defines an asynchronous agent’s associated executor.
associated_allocator trait, `associated_allocator_t` type alias, and get_associated_allocator function | Defines an asynchronous agent’s associated allocator.
associated_cancellation_slot trait, `associated_cancellation_slot_t` type alias, and get_associated_cancellation_slot function | Defines an asynchronous agent’s associated cancellation slot.