ExecutionContext
represents
a place where function objects will be executed.
ExecutionContext
type must
be convertible to boost::asio::execution_context
which is a base class for concrete execution context types. The boost::asio::io_context
type is an example of a derived type.