### 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.
execute | 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.
prefer | Forward a preference to the underlying executor.
query | Forward a query to the underlying executor.
require | Forward a requirement to the underlying executor.
running_in_this_thread | Determine whether the strand is running in the current thread.
strand [constructor] | Default constructor. — Construct a strand for the specified executor. — Copy constructor. — Converting constructor. — Move constructor. — Converting move constructor.
~strand [destructor] | 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`