### strand

Provides serialised function invocation for any executor type.

    template<
        typename Executor>
    class strand

##### Types

Name | Description
--- | ---
inner_executor_type | The type of the underlying executor.

##### Member Functions

Name | Description
--- | ---
context | Obtain the underlying execution context.
defer | Request the strand to invoke the given function object.
dispatch | Request the strand to invoke the given function object.
get_inner_executor | Obtain the underlying executor.
on_work_finished | Inform the strand that some work is no longer outstanding.
on_work_started | Inform the strand that it has some outstanding work to do.
operator= | Assignment operator. Converting assignment operator. Move assignment operator. Converting move assignment operator.
post | Request the strand to invoke the given function object.
running_in_this_thread | Determine whether the strand is running in the current thread.
strand | Default constructor. Construct a strand for the specified executor. Copy constructor. Converting constructor. Move constructor. Converting move constructor.
~strand | Destructor.

##### Friends

Name | Description
--- | ---
operator!= | Compare two strands for inequality.
operator== | Compare two strands for equality.

##### Requirements

Header: `asio/strand.hpp`

Convenience header: `asio.hpp`