#### io_service::add_service

Add a service object to the io_service.

    template<
        typename Service>
    friend void add_service(
        io_service & ios,
        Service * svc);

This function is used to add a service to the io_service.

###### Parameters

ios

  The io_service object that owns the service.

svc

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

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

###### Exceptions

asio::service_already_exists

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

asio::invalid_service_owner

  Thrown if the service's owning io_service is not the io_service object specified by the ios parameter.