### associated_executor

Traits type used to obtain the executor associated with an object.

    template<
        typename T,
        typename Executor = system_executor>
    struct associated_executor

##### Types

Name | Description
--- | ---
type | If T has a nested type executor_type, T::executor_type. Otherwise Executor.

##### Member Functions

Name | Description
--- | ---
get [static] | If T has a nested type executor_type, returns t.get_executor(). Otherwise returns type(). — If T has a nested type executor_type, returns t.get_executor(). Otherwise returns ex.

A program may specialise this traits type if the `T` template parameter in the specialisation is a user-defined type. The template parameter `Executor` shall be a type meeting the Executor requirements.

Specialisations shall meet the following requirements, where `t` is a const reference to an object of type `T`, and `e` is an object of type `Executor`.

- Provide a nested typedef `type` that identifies a type meeting the Executor requirements.
- Provide a noexcept static member function named `get`, callable as `get(t)` and with return type `type` or a (possibly const) reference to `type`.
- Provide a noexcept static member function named `get`, callable as `get(t,e)` and with return type `type` or a (possibly const) reference to `type`.

##### Requirements

Header: `asio/associated_executor.hpp`

Convenience header: `asio.hpp`