Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of Boost. Click here to view this page for the latest version.

Service requirements

A class is a service if it is publicly derived from another service, or if it is a class derived from io_service::service and contains a publicly-accessible declaration as follows:

static io_service::id id;

All services define a one-argument constructor that takes a reference to the io_service object that owns the service. This constructor is explicit, preventing its participation in automatic conversions. For example:

class my_service : public io_service::service
  static io_service::id id;
  explicit my_service(io_service& ios);
  virtual void shutdown_service();

A service's shutdown_service member function must cause all copies of user-defined handler objects that are held by the service to be destroyed.