[/
 / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 /
 / Distributed under the Boost Software License, Version 1.0. (See accompanying
 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 /]

[section:ExecutionContext Execution context requirements]

A type `X` meets the `ExecutionContext` requirements if it is publicly and
unambiguously derived from `execution_context`, and satisfies the additional
requirements listed below.

In the table below, `x` denotes a value of type `X`.

[table ExecutionContext requirements
  [[expression] [return type] [assertion/note\npre/post-condition]]
  [
    [`X::executor_type`]
    [type meeting [link asio.reference.Executor1 `Executor`] requirements]
    []
  ]
  [
    [`x.~X()`]
    []
    [Destroys all unexecuted function objects that were submitted via an
     executor object that is associated with the execution context.]
  ]
  [
    [`x.get_executor()`]
    [`X::executor_type`]
    [Returns an executor object that is associated with the execution context.]
  ]
]

[endsect]
