#### io_context::add_service

Inherited from execution_context.

(Deprecated: Use `make_service()`.) Add a service object to the `execution_context`.

    template<
        typename Service>
    friend void add_service(
        execution_context & e,
        Service * svc);

This function is used to add a service to the `execution_context`.

###### Parameters

e

  The `execution_context` object that owns the service.

svc

  The service object. On success, ownership of the service object is transferred to the `execution_context`. When the `execution_context` object is destroyed, it will destroy the service object by performing:

      delete static_cast<execution_context::service*>(svc)

###### Exceptions

asio::service_already_exists

  Thrown if a service of the given type is already present in the `execution_context`.

asio::invalid_service_owner

  Thrown if the service's owning `execution_context` is not the `execution_context` object specified by the `e` parameter.

###### Requirements

Header: `asio/io_context.hpp`

Convenience header: `asio.hpp`