Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r54920 - in branches/release: . boost/asio boost/asio/detail boost/asio/ssl/detail libs/asio/doc
From: chris_at_[hidden]
Date: 2009-07-13 06:41:08


Author: chris_kohlhoff
Date: 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
New Revision: 54920
URL: http://svn.boost.org/trac/boost/changeset/54920

Log:
Merged from trunk. Fixes #3256.

........
  r54844 | chris_kohlhoff | 2009-07-10 08:55:26 +1000 (Fri, 10 Jul 2009) | 2 lines
  
  Fix task initialisation.
........
  r54845 | chris_kohlhoff | 2009-07-10 08:58:26 +1000 (Fri, 10 Jul 2009) | 2 lines
  
  Don't write to /dev/poll descriptor when there are no pending changes.
........
  r54907 | chris_kohlhoff | 2009-07-12 18:16:06 +1000 (Sun, 12 Jul 2009) | 2 lines
  
  Fix compile error when using openssl 1.0 beta. Refs #3256.
........
  r54916 | chris_kohlhoff | 2009-07-13 13:38:21 +1000 (Mon, 13 Jul 2009) | 2 lines
  
  Documentation updates.
........
  r54917 | chris_kohlhoff | 2009-07-13 13:40:50 +1000 (Mon, 13 Jul 2009) | 2 lines
  
  Show explicit keyword when necessary. Fix hyperlinks between classes.
........
  r54918 | chris_kohlhoff | 2009-07-13 13:45:06 +1000 (Mon, 13 Jul 2009) | 2 lines
  
  Regenerate documentation.
........

Properties modified:
   branches/release/ (props changed)
Text files modified:
   branches/release/boost/asio/basic_deadline_timer.hpp | 46
   branches/release/boost/asio/detail/dev_poll_reactor.hpp | 29
   branches/release/boost/asio/detail/task_io_service_2lock.hpp | 2
   branches/release/boost/asio/handler_invoke_hook.hpp | 7
   branches/release/boost/asio/io_service.hpp | 179
   branches/release/boost/asio/ssl/detail/openssl_context_service.hpp | 27
   branches/release/libs/asio/doc/reference.qbk | 10090 ++++++++++++++++++++++++++++++---------
   branches/release/libs/asio/doc/reference.xsl | 96
   8 files changed, 8105 insertions(+), 2371 deletions(-)

Modified: branches/release/boost/asio/basic_deadline_timer.hpp
==============================================================================
--- branches/release/boost/asio/basic_deadline_timer.hpp (original)
+++ branches/release/boost/asio/basic_deadline_timer.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -35,6 +35,10 @@
  * The basic_deadline_timer class template provides the ability to perform a
  * blocking or asynchronous wait for a timer to expire.
  *
+ * A deadline timer is always in one of two states: "expired" or "not expired".
+ * If the wait() or async_wait() function is called on an expired timer, the
+ * wait operation will complete immediately.
+ *
  * Most applications will use the boost::asio::deadline_timer typedef.
  *
  * @par Thread Safety
@@ -193,6 +197,13 @@
    * @return The number of asynchronous operations that were cancelled.
    *
    * @throws boost::system::system_error Thrown on failure.
+ *
+ * @note If the timer has already expired when cancel() is called, then the
+ * handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t cancel()
   {
@@ -213,6 +224,13 @@
    * @param ec Set to indicate what error occurred, if any.
    *
    * @return The number of asynchronous operations that were cancelled.
+ *
+ * @note If the timer has already expired when cancel() is called, then the
+ * handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t cancel(boost::system::error_code& ec)
   {
@@ -240,6 +258,13 @@
    * @return The number of asynchronous operations that were cancelled.
    *
    * @throws boost::system::system_error Thrown on failure.
+ *
+ * @note If the timer has already expired when expires_at() is called, then
+ * the handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t expires_at(const time_type& expiry_time)
   {
@@ -261,6 +286,13 @@
    * @param ec Set to indicate what error occurred, if any.
    *
    * @return The number of asynchronous operations that were cancelled.
+ *
+ * @note If the timer has already expired when expires_at() is called, then
+ * the handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t expires_at(const time_type& expiry_time,
       boost::system::error_code& ec)
@@ -289,6 +321,13 @@
    * @return The number of asynchronous operations that were cancelled.
    *
    * @throws boost::system::system_error Thrown on failure.
+ *
+ * @note If the timer has already expired when expires_from_now() is called,
+ * then the handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t expires_from_now(const duration_type& expiry_time)
   {
@@ -310,6 +349,13 @@
    * @param ec Set to indicate what error occurred, if any.
    *
    * @return The number of asynchronous operations that were cancelled.
+ *
+ * @note If the timer has already expired when expires_from_now() is called,
+ * then the handlers for asynchronous wait operations will:
+ * @li have already been invoked; or
+ * @li have been queued for invocation in the near future.
+ * These handlers can no longer be cancelled, and therefore are passed an
+ * error code that indicates the successful completion of the wait operation.
    */
   std::size_t expires_from_now(const duration_type& expiry_time,
       boost::system::error_code& ec)

Modified: branches/release/boost/asio/detail/dev_poll_reactor.hpp
==============================================================================
--- branches/release/boost/asio/detail/dev_poll_reactor.hpp (original)
+++ branches/release/boost/asio/detail/dev_poll_reactor.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -366,23 +366,26 @@
 
     // Write the pending event registration changes to the /dev/poll descriptor.
     std::size_t events_size = sizeof(::pollfd) * pending_event_changes_.size();
- errno = 0;
- int result = ::write(dev_poll_fd_,
- &pending_event_changes_[0], events_size);
- if (result != static_cast<int>(events_size))
+ if (events_size > 0)
     {
- for (std::size_t i = 0; i < pending_event_changes_.size(); ++i)
+ errno = 0;
+ int result = ::write(dev_poll_fd_,
+ &pending_event_changes_[0], events_size);
+ if (result != static_cast<int>(events_size))
       {
- int descriptor = pending_event_changes_[i].fd;
- boost::system::error_code ec = boost::system::error_code(
- errno, boost::asio::error::get_system_category());
- read_op_queue_.perform_all_operations(descriptor, ec);
- write_op_queue_.perform_all_operations(descriptor, ec);
- except_op_queue_.perform_all_operations(descriptor, ec);
+ for (std::size_t i = 0; i < pending_event_changes_.size(); ++i)
+ {
+ int descriptor = pending_event_changes_[i].fd;
+ boost::system::error_code ec = boost::system::error_code(
+ errno, boost::asio::error::get_system_category());
+ read_op_queue_.perform_all_operations(descriptor, ec);
+ write_op_queue_.perform_all_operations(descriptor, ec);
+ except_op_queue_.perform_all_operations(descriptor, ec);
+ }
       }
+ pending_event_changes_.clear();
+ pending_event_change_index_.clear();
     }
- pending_event_changes_.clear();
- pending_event_change_index_.clear();
 
     int timeout = block ? get_timeout() : 0;
     wait_in_progress_ = true;

Modified: branches/release/boost/asio/detail/task_io_service_2lock.hpp
==============================================================================
--- branches/release/boost/asio/detail/task_io_service_2lock.hpp (original)
+++ branches/release/boost/asio/detail/task_io_service_2lock.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -50,7 +50,7 @@
     : boost::asio::detail::service_base<task_io_service<Task> >(io_service),
       front_mutex_(),
       back_mutex_(),
- task_(&use_service<Task>(io_service)),
+ task_(0),
       outstanding_work_(0),
       front_stopped_(false),
       back_stopped_(false),

Modified: branches/release/boost/asio/handler_invoke_hook.hpp
==============================================================================
--- branches/release/boost/asio/handler_invoke_hook.hpp (original)
+++ branches/release/boost/asio/handler_invoke_hook.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -26,10 +26,9 @@
  * io_service associated with the corresponding object (e.g. a socket or
  * deadline_timer). Certain guarantees are made on when the handler may be
  * invoked, in particular that a handler can only be invoked from a thread that
- * is currently calling boost::asio::io_service::run() on the corresponding
- * io_service object. Handlers may subsequently be invoked through other
- * objects (such as boost::asio::strand objects) that provide additional
- * guarantees.
+ * is currently calling @c run() on the corresponding io_service object.
+ * Handlers may subsequently be invoked through other objects (such as
+ * io_service::strand objects) that provide additional guarantees.
  *
  * When asynchronous operations are composed from other asynchronous
  * operations, all intermediate handlers should be invoked using the same

Modified: branches/release/boost/asio/io_service.hpp
==============================================================================
--- branches/release/boost/asio/io_service.hpp (original)
+++ branches/release/boost/asio/io_service.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -61,27 +61,36 @@
  *
  * @par Thread Safety
  * @e Distinct @e objects: Safe._at_n
- * @e Shared @e objects: Safe, with the exception that calling reset()
- * while there are unfinished run() calls results in undefined behaviour.
+ * @e Shared @e objects: Safe, with the exception that calling reset() while
+ * there are unfinished run(), run_one(), poll() or poll_one() calls results in
+ * undefined behaviour.
  *
  * @par Concepts:
  * Dispatcher.
  *
+ * @par Synchronous and asynchronous operations
+ *
+ * Synchronous operations on I/O objects implicitly run the io_service object
+ * for an individual operation. The io_service functions run(), run_one(),
+ * poll() or poll_one() must be called for the io_service to perform
+ * asynchronous operations on behalf of a C++ program. Notification that an
+ * asynchronous operation has completed is delivered by invocation of the
+ * associated handler. Handlers are invoked only by a thread that is currently
+ * calling any overload of run(), run_one(), poll() or poll_one() for the
+ * io_service.
+ *
  * @par Effect of exceptions thrown from handlers
  *
  * If an exception is thrown from a handler, the exception is allowed to
- * propagate through the throwing thread's invocation of
- * boost::asio::io_service::run(), boost::asio::io_service::run_one(),
- * boost::asio::io_service::poll() or boost::asio::io_service::poll_one().
- * No other threads that are calling any of these functions are affected. It is
- * then the responsibility of the application to catch the exception.
- *
- * After the exception has been caught, the
- * boost::asio::io_service::run(), boost::asio::io_service::run_one(),
- * boost::asio::io_service::poll() or boost::asio::io_service::poll_one()
- * call may be restarted @em without the need for an intervening call to
- * boost::asio::io_service::reset(). This allows the thread to rejoin the
- * io_service's thread pool without impacting any other threads in the pool.
+ * propagate through the throwing thread's invocation of run(), run_one(),
+ * poll() or poll_one(). No other threads that are calling any of these
+ * functions are affected. It is then the responsibility of the application to
+ * catch the exception.
+ *
+ * After the exception has been caught, the run(), run_one(), poll() or
+ * poll_one() call may be restarted @em without the need for an intervening
+ * call to reset(). This allows the thread to rejoin the io_service object's
+ * thread pool without impacting any other threads in the pool.
  *
  * For example:
  *
@@ -104,7 +113,7 @@
  *
  * @par Stopping the io_service from running out of work
  *
- * Some applications may need to prevent an io_service's run() call from
+ * Some applications may need to prevent an io_service object's run() call from
  * returning when there is no more work to do. For example, the io_service may
  * be being run in a background thread that is launched prior to the
  * application's asynchronous operations. The run() call may be kept running by
@@ -114,10 +123,10 @@
  * boost::asio::io_service::work work(io_service);
  * ... @endcode
  *
- * To effect a shutdown, the application will then need to call the io_service's
- * stop() member function. This will cause the io_service run() call to return
- * as soon as possible, abandoning unfinished operations and without permitting
- * ready handlers to be dispatched.
+ * To effect a shutdown, the application will then need to call the io_service
+ * object's stop() member function. This will cause the io_service run() call
+ * to return as soon as possible, abandoning unfinished operations and without
+ * permitting ready handlers to be dispatched.
  *
  * Alternatively, if the application requires that all operations and handlers
  * be allowed to finish normally, the work object may be explicitly destroyed.
@@ -127,6 +136,43 @@
  * new boost::asio::io_service::work(io_service));
  * ...
  * work.reset(); // Allow run() to exit. @endcode
+ *
+ * @par The io_service class and I/O services
+ *
+ * Class io_service implements an extensible, type-safe, polymorphic set of I/O
+ * services, indexed by service type. An object of class io_service must be
+ * initialised before I/O objects such as sockets, resolvers and timers can be
+ * used. These I/O objects are distinguished by having constructors that accept
+ * an @c io_service& parameter.
+ *
+ * I/O services exist to manage the logical interface to the operating system on
+ * behalf of the I/O objects. In particular, there are resources that are shared
+ * across a class of I/O objects. For example, timers may be implemented in
+ * terms of a single timer queue. The I/O services manage these shared
+ * resources.
+ *
+ * Access to the services of an io_service is via three function templates,
+ * use_service(), add_service() and has_service().
+ *
+ * In a call to @c use_service<Service>(), the type argument chooses a service,
+ * making available all members of the named type. If @c Service is not present
+ * in an io_service, an object of type @c Service is created and added to the
+ * io_service. A C++ program can check if an io_service implements a
+ * particular service with the function template @c has_service<Service>().
+ *
+ * Service objects may be explicitly added to an io_service using the function
+ * template @c add_service<Service>(). If the @c Service is already present, the
+ * service_already_exists exception is thrown. If the owner of the service is
+ * not the same object as the io_service parameter, the invalid_service_owner
+ * exception is thrown.
+ *
+ * Once a service reference is obtained from an io_service object by calling
+ * use_service(), that reference remains usable as long as the owning io_service
+ * object exists.
+ *
+ * All I/O service implementations have io_service::service as a public base
+ * class. Custom I/O services may be implemented by deriving from this class and
+ * then added to an io_service using the facilities described above.
  */
 class io_service
   : private noncopyable
@@ -169,9 +215,40 @@
   explicit io_service(std::size_t concurrency_hint);
 
   /// Destructor.
+ /**
+ * On destruction, the io_service performs the following sequence of
+ * operations:
+ *
+ * @li For each service object @c svc in the io_service set, in reverse order
+ * of the beginning of service object lifetime, performs
+ * @c svc->shutdown_service().
+ *
+ * @li Uninvoked handler objects that were scheduled for deferred invocation
+ * on the io_service, or any associated strand, are destroyed.
+ *
+ * @li For each service object @c svc in the io_service set, in reverse order
+ * of the beginning of service object lifetime, performs
+ * <tt>delete static_cast<io_service::service*>(svc)</tt>.
+ *
+ * @note The destruction sequence described above permits programs to
+ * simplify their resource management by using @c shared_ptr<>. Where an
+ * object's lifetime is tied to the lifetime of a connection (or some other
+ * sequence of asynchronous operations), a @c shared_ptr to the object would
+ * be bound into the handlers for all asynchronous operations associated with
+ * it. This works as follows:
+ *
+ * @li When a single connection ends, all associated asynchronous operations
+ * complete. The corresponding handler objects are destroyed, and all
+ * @c shared_ptr references to the objects are destroyed.
+ *
+ * @li To shut down the whole program, the io_service function stop() is
+ * called to terminate any run() calls as soon as possible. The io_service
+ * destructor defined above destroys all handlers, causing all @c shared_ptr
+ * references to all connection objects to be destroyed.
+ */
   ~io_service();
 
- /// Run the io_service's event processing loop.
+ /// Run the io_service object's event processing loop.
   /**
    * The run() function blocks until all work has finished and there are no
    * more handlers to be dispatched, or until the io_service has been stopped.
@@ -188,12 +265,16 @@
    *
    * @throws boost::system::system_error Thrown on failure.
    *
- * @note The poll() function may also be used to dispatch ready handlers,
- * but without blocking.
+ * @note The run() function must not be called from a thread that is currently
+ * calling one of run(), run_one(), poll() or poll_one() on the same
+ * io_service object.
+ *
+ * The poll() function may also be used to dispatch ready handlers, but
+ * without blocking.
    */
   std::size_t run();
 
- /// Run the io_service's event processing loop.
+ /// Run the io_service object's event processing loop.
   /**
    * The run() function blocks until all work has finished and there are no
    * more handlers to be dispatched, or until the io_service has been stopped.
@@ -210,12 +291,17 @@
    *
    * @return The number of handlers that were executed.
    *
- * @note The poll() function may also be used to dispatch ready handlers,
- * but without blocking.
+ * @note The run() function must not be called from a thread that is currently
+ * calling one of run(), run_one(), poll() or poll_one() on the same
+ * io_service object.
+ *
+ * The poll() function may also be used to dispatch ready handlers, but
+ * without blocking.
    */
   std::size_t run(boost::system::error_code& ec);
 
- /// Run the io_service's event processing loop to execute at most one handler.
+ /// Run the io_service object's event processing loop to execute at most one
+ /// handler.
   /**
    * The run_one() function blocks until one handler has been dispatched, or
    * until the io_service has been stopped.
@@ -226,7 +312,8 @@
    */
   std::size_t run_one();
 
- /// Run the io_service's event processing loop to execute at most one handler.
+ /// Run the io_service object's event processing loop to execute at most one
+ /// handler.
   /**
    * The run_one() function blocks until one handler has been dispatched, or
    * until the io_service has been stopped.
@@ -237,7 +324,8 @@
    */
   std::size_t run_one(boost::system::error_code& ec);
 
- /// Run the io_service's event processing loop to execute ready handlers.
+ /// Run the io_service object's event processing loop to execute ready
+ /// handlers.
   /**
    * The poll() function runs handlers that are ready to run, without blocking,
    * until the io_service has been stopped or there are no more ready handlers.
@@ -248,7 +336,8 @@
    */
   std::size_t poll();
 
- /// Run the io_service's event processing loop to execute ready handlers.
+ /// Run the io_service object's event processing loop to execute ready
+ /// handlers.
   /**
    * The poll() function runs handlers that are ready to run, without blocking,
    * until the io_service has been stopped or there are no more ready handlers.
@@ -259,7 +348,8 @@
    */
   std::size_t poll(boost::system::error_code& ec);
 
- /// Run the io_service's event processing loop to execute one ready handler.
+ /// Run the io_service object's event processing loop to execute one ready
+ /// handler.
   /**
    * The poll_one() function runs at most one handler that is ready to run,
    * without blocking.
@@ -270,7 +360,8 @@
    */
   std::size_t poll_one();
 
- /// Run the io_service's event processing loop to execute one ready handler.
+ /// Run the io_service object's event processing loop to execute one ready
+ /// handler.
   /**
    * The poll_one() function runs at most one handler that is ready to run,
    * without blocking.
@@ -281,7 +372,7 @@
    */
   std::size_t poll_one(boost::system::error_code& ec);
 
- /// Stop the io_service's event processing loop.
+ /// Stop the io_service object's event processing loop.
   /**
    * This function does not block, but instead simply signals the io_service to
    * stop. All invocations of its run() or run_one() member functions should
@@ -340,15 +431,15 @@
   /// on the io_service.
   /**
    * This function is used to create a new handler function object that, when
- * invoked, will automatically pass the wrapped handler to the io_service's
- * dispatch function.
+ * invoked, will automatically pass the wrapped handler to the io_service
+ * object's dispatch function.
    *
    * @param handler The handler to be wrapped. The io_service will make a copy
    * of the handler object as required. The function signature of the handler
    * must be: @code void handler(A1 a1, ... An an); @endcode
    *
    * @return A function object that, when invoked, passes the wrapped handler to
- * the io_service's dispatch function. Given a function object with the
+ * the io_service object's dispatch function. Given a function object with the
    * signature:
    * @code R f(A1 a1, ... An an); @endcode
    * If this function object is passed to the wrap function like so:
@@ -430,9 +521,9 @@
 /// Class to inform the io_service when it has work to do.
 /**
  * The work class is used to inform the io_service when work starts and
- * finishes. This ensures that the io_service's run() function will not exit
- * while work is underway, and that it does exit when there is no unfinished
- * work remaining.
+ * finishes. This ensures that the io_service object's run() function will not
+ * exit while work is underway, and that it does exit when there is no
+ * unfinished work remaining.
  *
  * The work class is copy-constructible so that it may be used as a data member
  * in a handler class. It is not assignable.
@@ -443,24 +534,24 @@
   /// Constructor notifies the io_service that work is starting.
   /**
    * The constructor is used to inform the io_service that some work has begun.
- * This ensures that the io_service's run() function will not exit while the
- * work is underway.
+ * This ensures that the io_service object's run() function will not exit
+ * while the work is underway.
    */
   explicit work(boost::asio::io_service& io_service);
 
   /// Copy constructor notifies the io_service that work is starting.
   /**
    * The constructor is used to inform the io_service that some work has begun.
- * This ensures that the io_service's run() function will not exit while the
- * work is underway.
+ * This ensures that the io_service object's run() function will not exit
+ * while the work is underway.
    */
   work(const work& other);
 
   /// Destructor notifies the io_service that the work is complete.
   /**
    * The destructor is used to inform the io_service that some work has
- * finished. Once the count of unfinished work reaches zero, the io_service's
- * run() function is permitted to exit.
+ * finished. Once the count of unfinished work reaches zero, the io_service
+ * object's run() function is permitted to exit.
    */
   ~work();
 

Modified: branches/release/boost/asio/ssl/detail/openssl_context_service.hpp
==============================================================================
--- branches/release/boost/asio/ssl/detail/openssl_context_service.hpp (original)
+++ branches/release/boost/asio/ssl/detail/openssl_context_service.hpp 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -67,49 +67,48 @@
   // Create a new context implementation.
   void create(impl_type& impl, context_base::method m)
   {
- ::SSL_METHOD* ssl_method = 0;
     switch (m)
     {
     case context_base::sslv2:
- ssl_method = ::SSLv2_method();
+ impl = ::SSL_CTX_new(::SSLv2_method());
       break;
     case context_base::sslv2_client:
- ssl_method = ::SSLv2_client_method();
+ impl = ::SSL_CTX_new(::SSLv2_client_method());
       break;
     case context_base::sslv2_server:
- ssl_method = ::SSLv2_server_method();
+ impl = ::SSL_CTX_new(::SSLv2_server_method());
       break;
     case context_base::sslv3:
- ssl_method = ::SSLv3_method();
+ impl = ::SSL_CTX_new(::SSLv3_method());
       break;
     case context_base::sslv3_client:
- ssl_method = ::SSLv3_client_method();
+ impl = ::SSL_CTX_new(::SSLv3_client_method());
       break;
     case context_base::sslv3_server:
- ssl_method = ::SSLv3_server_method();
+ impl = ::SSL_CTX_new(::SSLv3_server_method());
       break;
     case context_base::tlsv1:
- ssl_method = ::TLSv1_method();
+ impl = ::SSL_CTX_new(::TLSv1_method());
       break;
     case context_base::tlsv1_client:
- ssl_method = ::TLSv1_client_method();
+ impl = ::SSL_CTX_new(::TLSv1_client_method());
       break;
     case context_base::tlsv1_server:
- ssl_method = ::TLSv1_server_method();
+ impl = ::SSL_CTX_new(::TLSv1_server_method());
       break;
     case context_base::sslv23:
- ssl_method = ::SSLv23_method();
+ impl = ::SSL_CTX_new(::SSLv23_method());
       break;
     case context_base::sslv23_client:
- ssl_method = ::SSLv23_client_method();
+ impl = ::SSL_CTX_new(::SSLv23_client_method());
       break;
     case context_base::sslv23_server:
- ssl_method = ::SSLv23_server_method();
+ impl = ::SSL_CTX_new(::SSLv23_server_method());
       break;
     default:
+ impl = ::SSL_CTX_new(0);
       break;
     }
- impl = ::SSL_CTX_new(ssl_method);
   }
 
   // Destroy a context implementation.

Modified: branches/release/libs/asio/doc/reference.qbk
==============================================================================
--- branches/release/libs/asio/doc/reference.qbk (original)
+++ branches/release/libs/asio/doc/reference.qbk 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -68,7 +68,7 @@
       Service * svc);
 
 
-This function is used to add a service to the io_service.
+This function is used to add a service to the [link boost_asio.reference.io_service `io_service`].
 
 
 [heading Parameters]
@@ -76,9 +76,9 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `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:
+[[svc][The service object. On success, ownership of the service object is transferred to the [link boost_asio.reference.io_service `io_service`]. When the [link boost_asio.reference.io_service `io_service`] object is destroyed, it will destroy the service object by performing:
 ``
    delete static_cast<io_service::service*>(svc)
 ``
@@ -86,18 +86,20 @@
 
 ]
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the io\_service.]]
+[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the [link boost_asio.reference.io_service `io_service`].]]
 
-[[boost::asio::invalid_service_owner][Thrown if the service's owning io\_service is not the io\_service object specified by the ios parameter. ]]
+[[boost::asio::invalid_service_owner][Thrown if the service's owning [link boost_asio.reference.io_service `io_service`] is not the [link boost_asio.reference.io_service `io_service`] object specified by the ios parameter. ]]
 
 ]
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/io_service.hpp]
@@ -111,7 +113,9 @@
 
 [section:asio_handler_allocate asio_handler_allocate]
 
-[indexterm1 asio_handler_allocate] Default allocation function for handlers.
+[indexterm1 asio_handler_allocate]
+Default allocation function for handlers.
+
 
   void * asio_handler_allocate(
       std::size_t size,
@@ -134,6 +138,7 @@
       
 All temporary objects associated with a handler will be deallocated before the upcall to the handler is performed. This allows the same memory to be reused for a subsequent asynchronous operation initiated by the handler.
 
+
 [heading Example]
   
 
@@ -155,6 +160,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/handler_alloc_hook.hpp]
@@ -168,7 +174,9 @@
 
 [section:asio_handler_deallocate asio_handler_deallocate]
 
-[indexterm1 asio_handler_deallocate] Default deallocation function for handlers.
+[indexterm1 asio_handler_deallocate]
+Default deallocation function for handlers.
+
 
   void asio_handler_deallocate(
       void * pointer,
@@ -187,6 +195,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/handler_alloc_hook.hpp]
@@ -200,7 +209,9 @@
 
 [section:asio_handler_invoke asio_handler_invoke]
 
-[indexterm1 asio_handler_invoke] Default invoke function for handlers.
+[indexterm1 asio_handler_invoke]
+Default invoke function for handlers.
+
 
   template<
       typename Function>
@@ -209,7 +220,7 @@
       ... );
 
 
-Completion handlers for asynchronous operations are invoked by the io_service associated with the corresponding object (e.g. a socket or deadline\_timer). Certain guarantees are made on when the handler may be invoked, in particular that a handler can only be invoked from a thread that is currently calling boost::asio::io\_service::run() on the corresponding io_service object. Handlers may subsequently be invoked through other objects (such as boost::asio::strand objects) that provide additional guarantees.
+Completion handlers for asynchronous operations are invoked by the [link boost_asio.reference.io_service `io_service`] associated with the corresponding object (e.g. a socket or deadline\_timer). Certain guarantees are made on when the handler may be invoked, in particular that a handler can only be invoked from a thread that is currently calling `run()` on the corresponding [link boost_asio.reference.io_service `io_service`] object. Handlers may subsequently be invoked through other objects (such as [link boost_asio.reference.io_service__strand `io_service::strand`] objects) that provide additional guarantees.
 
 When asynchronous operations are composed from other asynchronous operations, all intermediate handlers should be invoked using the same method as the final handler. This is required to ensure that user-defined objects are not accessed in a way that may violate the guarantees. This hooking function ensures that the invoked method used for the final handler is accessible at each intermediate step.
 
@@ -239,6 +250,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/handler_invoke_hook.hpp]
@@ -251,7 +263,9 @@
 
 [section:async_read async_read]
 
-[indexterm1 async_read] Start an asynchronous operation to read a certain amount of data from a stream.
+[indexterm1 async_read]
+Start an asynchronous operation to read a certain amount of data from a stream.
+
       
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
@@ -306,8 +320,10 @@
 
 [section:overload1 async_read (1 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data from a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -323,6 +339,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function.
@@ -349,20 +366,20 @@
                                              // prior to the error.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_read(s, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -378,14 +395,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 async_read (2 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data from a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -403,8 +423,10 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
+
 [heading Parameters]
     
 
@@ -438,14 +460,14 @@
                                              // prior to the error.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_read(s,
        boost::asio::buffer(data, size),
@@ -453,8 +475,8 @@
        handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -464,8 +486,10 @@
 
 [section:overload3 async_read (3 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data from a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -491,7 +515,7 @@
   
 [[s][The stream from which the data is to be read. The type must support the AsyncReadStream concept.]]
 
-[[b][A basic\_streambuf object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 ``
@@ -505,10 +529,11 @@
                                              // prior to the error.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -523,14 +548,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 async_read (4 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data from a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -558,7 +586,7 @@
   
 [[s][The stream from which the data is to be read. The type must support the AsyncReadStream concept.]]
 
-[[b][A basic\_streambuf object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -584,12 +612,13 @@
                                              // prior to the error.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -597,7 +626,9 @@
 
 [section:async_read_at async_read_at]
 
-[indexterm1 async_read_at] Start an asynchronous operation to read a certain amount of data at the specified offset.
+[indexterm1 async_read_at]
+Start an asynchronous operation to read a certain amount of data at the specified offset.
+
       
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
@@ -656,8 +687,10 @@
 
 [section:overload1 async_read_at (1 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -674,6 +707,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's async\_read\_some\_at function.
@@ -702,20 +736,20 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_read_at(d, 42, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -731,14 +765,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 async_read_at (2 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -757,8 +794,10 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
+
 [heading Parameters]
     
 
@@ -794,14 +833,14 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_read_at(d, 42,
        boost::asio::buffer(data, size),
@@ -809,8 +848,8 @@
        handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -820,8 +859,10 @@
 
 [section:overload3 async_read_at (3 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
       typename Allocator,
@@ -850,7 +891,7 @@
 
 [[offset][The offset at which the data will be read.]]
 
-[[b][A basic\_streambuf object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 ``
@@ -864,10 +905,11 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -882,14 +924,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 async_read_at (4 of 4 overloads)]
 
+
 Start an asynchronous operation to read a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessReadDevice AsyncRandomAccessReadDevice]``,
       typename Allocator,
@@ -920,7 +965,7 @@
 
 [[offset][The offset at which the data will be read.]]
 
-[[b][A basic\_streambuf object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -946,12 +991,13 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -959,7 +1005,9 @@
 
 [section:async_read_until async_read_until]
 
-[indexterm1 async_read_until] Start an asynchronous operation to read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
+[indexterm1 async_read_until]
+Start an asynchronous operation to read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
+
       
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
@@ -1016,8 +1064,10 @@
 
 [section:overload1 async_read_until (1 of 4 overloads)]
 
+
 Start an asynchronous operation to read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -1034,6 +1084,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function. If the streambuf's get area already contains the delimiter, the asynchronous operation completes immediately.
@@ -1062,14 +1113,16 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 After a successful async\_read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent async\_read\_until operation to examine.
 
+
 [heading Example]
   
 To asynchronously read data into a streambuf until a newline is encountered:
@@ -1094,14 +1147,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 async_read_until (2 of 4 overloads)]
 
+
 Start an asynchronous operation to read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -1118,6 +1174,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function. If the streambuf's get area already contains the delimiter, the asynchronous operation completes immediately.
@@ -1146,14 +1203,16 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 After a successful async\_read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent async\_read\_until operation to examine.
 
+
 [heading Example]
   
 To asynchronously read data into a streambuf until a newline is encountered:
@@ -1178,14 +1237,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 async_read_until (3 of 4 overloads)]
 
+
 Start an asynchronous operation to read data into a streambuf until some part of its data matches a regular expression.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -1202,6 +1264,7 @@
 
 * A substring of the streambuf's get area matches the regular expression.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
@@ -1231,14 +1294,16 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 After a successful async\_read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent async\_read\_until operation to examine.
 
+
 [heading Example]
   
 To asynchronously read data into a streambuf until a CR-LF sequence is encountered:
@@ -1263,14 +1328,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 async_read_until (4 of 4 overloads)]
 
+
 Start an asynchronous operation to read data into a streambuf until a function object indicates a match.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncReadStream AsyncReadStream]``,
       typename Allocator,
@@ -1289,6 +1357,7 @@
 
 * The match condition function object returns a std::pair where the second element evaluates to true.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_read\_some function. If the match condition function object already indicates a match, the operation completes immediately.
@@ -1325,16 +1394,18 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 After a successful async\_read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent async\_read\_until operation to examine.
 
 The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
 
+
 [heading Examples]
   
 To asynchronously read data into a streambuf until whitespace is encountered:
@@ -1403,7 +1474,9 @@
 
 [section:async_write async_write]
 
-[indexterm1 async_write] Start an asynchronous operation to write a certain amount of data to a stream.
+[indexterm1 async_write]
+Start an asynchronous operation to write a certain amount of data to a stream.
+
       
   template<
       typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
@@ -1458,8 +1531,10 @@
 
 [section:overload1 async_write (1 of 4 overloads)]
 
+
 Start an asynchronous operation to write all of the supplied data to a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -1475,6 +1550,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function.
@@ -1500,20 +1576,20 @@
                                              // of the buffer sizes.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_write(s, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -1523,8 +1599,10 @@
 
 [section:overload2 async_write (2 of 4 overloads)]
 
+
 Start an asynchronous operation to write a certain amount of data to a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -1542,6 +1620,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function.
@@ -1579,14 +1658,14 @@
                                              // of the buffer sizes.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_write(s,
        boost::asio::buffer(data, size),
@@ -1594,8 +1673,8 @@
        handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -1605,8 +1684,10 @@
 
 [section:overload3 async_write (3 of 4 overloads)]
 
+
 Start an asynchronous operation to write all of the supplied data to a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
       typename Allocator,
@@ -1622,6 +1703,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function.
@@ -1634,7 +1716,7 @@
   
 [[s][The stream to which the data is to be written. The type must support the AsyncWriteStream concept.]]
 
-[[b][A basic\_streambuf object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 ``
@@ -1647,20 +1729,23 @@
                                              // of the buffer sizes.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 async_write (4 of 4 overloads)]
 
+
 Start an asynchronous operation to write a certain amount of data to a stream.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncWriteStream AsyncWriteStream]``,
       typename Allocator,
@@ -1678,6 +1763,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's async\_write\_some function.
@@ -1690,7 +1776,7 @@
   
 [[s][The stream to which the data is to be written. The type must support the AsyncWriteStream concept.]]
 
-[[b][A basic\_streambuf object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -1715,12 +1801,13 @@
                                              // of the buffer sizes.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -1728,7 +1815,9 @@
 
 [section:async_write_at async_write_at]
 
-[indexterm1 async_write_at] Start an asynchronous operation to write a certain amount of data at the specified offset.
+[indexterm1 async_write_at]
+Start an asynchronous operation to write a certain amount of data at the specified offset.
+
       
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
@@ -1787,8 +1876,10 @@
 
 [section:overload1 async_write_at (1 of 4 overloads)]
 
+
 Start an asynchronous operation to write all of the supplied data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -1805,6 +1896,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
@@ -1832,20 +1924,20 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_write_at(d, 42, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -1855,8 +1947,10 @@
 
 [section:overload2 async_write_at (2 of 4 overloads)]
 
+
 Start an asynchronous operation to write a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -1875,6 +1969,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
@@ -1914,14 +2009,14 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::async_write_at(d, 42,
        boost::asio::buffer(data, size),
@@ -1929,8 +2024,8 @@
        handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -1940,8 +2035,10 @@
 
 [section:overload3 async_write_at (3 of 4 overloads)]
 
+
 Start an asynchronous operation to write all of the supplied data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
       typename Allocator,
@@ -1958,6 +2055,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
@@ -1972,7 +2070,7 @@
 
 [[offset][The offset at which the data will be written.]]
 
-[[b][A basic\_streambuf object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
 ``
@@ -1985,20 +2083,23 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 async_write_at (4 of 4 overloads)]
 
+
 Start an asynchronous operation to write a certain amount of data at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.AsyncRandomAccessWriteDevice AsyncRandomAccessWriteDevice]``,
       typename Allocator,
@@ -2017,6 +2118,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's async\_write\_some\_at function.
@@ -2031,7 +2133,7 @@
 
 [[offset][The offset at which the data will be written.]]
 
-[[b][A basic\_streambuf object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
+[[b][A [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written. Ownership of the streambuf is retained by the caller, which must guarantee that it remains valid until the handler is called.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -2056,12 +2158,13 @@
      std::size_t bytes_transferred
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -2069,8 +2172,10 @@
 
 [section:basic_datagram_socket basic_datagram_socket]
 
+
 Provides datagram-oriented socket functionality.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.DatagramSocketService DatagramSocketService]`` = datagram_socket_service<Protocol>>
@@ -2432,14 +2537,15 @@
 
 ]
 
-The basic_datagram_socket class template provides asynchronous and blocking datagram-oriented socket functionality.
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -2450,7 +2556,9 @@
 
 [section:assign basic_datagram_socket::assign]
 
-[indexterm2 assign..basic_datagram_socket] Assign an existing native socket to the socket.
+[indexterm2 assign..basic_datagram_socket]
+Assign an existing native socket to the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -2469,8 +2577,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_socket);
@@ -2486,8 +2596,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_socket,
@@ -2506,7 +2618,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 async_connect..basic_datagram_socket] Start an asynchronous connect.
+[indexterm2 async_connect..basic_datagram_socket]
+Start an asynchronous connect.
+
 
   void async_connect(
       const endpoint_type & peer_endpoint,
@@ -2531,10 +2645,11 @@
      const boost::system::error_code& error // Result of operation
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -2559,12 +2674,15 @@
 
 
 
+
 [endsect]
 
 
 [section:async_receive basic_datagram_socket::async_receive]
 
-[indexterm2 async_receive..basic_datagram_socket] Start an asynchronous receive on a connected socket.
+[indexterm2 async_receive..basic_datagram_socket]
+Start an asynchronous receive on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -2586,8 +2704,10 @@
 
 [section:overload1 basic_datagram_socket::async_receive (1 of 2 overloads)]
 
+
 Start an asynchronous receive on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -2613,24 +2733,25 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_receive operation can only be used with a connected socket. Use the async\_receive\_from function to receive data on an unconnected datagram socket.
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -2640,8 +2761,10 @@
 
 [section:overload2 basic_datagram_socket::async_receive (2 of 2 overloads)]
 
+
 Start an asynchronous receive on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -2670,16 +2793,18 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_receive operation can only be used with a connected socket. Use the async\_receive\_from function to receive data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
@@ -2687,7 +2812,9 @@
 
 [section:async_receive_from basic_datagram_socket::async_receive_from]
 
-[indexterm2 async_receive_from..basic_datagram_socket] Start an asynchronous receive.
+[indexterm2 async_receive_from..basic_datagram_socket]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -2711,8 +2838,10 @@
 
 [section:overload1 basic_datagram_socket::async_receive_from (1 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -2741,21 +2870,21 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive_from(
        boost::asio::buffer(data, size), 0, sender_endpoint, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -2765,8 +2894,10 @@
 
 [section:overload2 basic_datagram_socket::async_receive_from (2 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -2798,12 +2929,13 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -2811,7 +2943,9 @@
 
 [section:async_send basic_datagram_socket::async_send]
 
-[indexterm2 async_send..basic_datagram_socket] Start an asynchronous send on a connected socket.
+[indexterm2 async_send..basic_datagram_socket]
+Start an asynchronous send on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -2833,8 +2967,10 @@
 
 [section:overload1 basic_datagram_socket::async_send (1 of 2 overloads)]
 
+
 Start an asynchronous send on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -2860,24 +2996,25 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_send operation can only be used with a connected socket. Use the async\_send\_to function to send data on an unconnected datagram socket.
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_send(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -2887,8 +3024,10 @@
 
 [section:overload2 basic_datagram_socket::async_send (2 of 2 overloads)]
 
+
 Start an asynchronous send on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -2917,16 +3056,18 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_send operation can only be used with a connected socket. Use the async\_send\_to function to send data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
@@ -2934,7 +3075,9 @@
 
 [section:async_send_to basic_datagram_socket::async_send_to]
 
-[indexterm2 async_send_to..basic_datagram_socket] Start an asynchronous send.
+[indexterm2 async_send_to..basic_datagram_socket]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -2958,8 +3101,10 @@
 
 [section:overload1 basic_datagram_socket::async_send_to (1 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -2988,14 +3133,14 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint destination(
        boost::asio::ip::address::from_string("1.2.3.4"), 12345);
@@ -3003,8 +3148,8 @@
        boost::asio::buffer(data, size), destination, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -3014,8 +3159,10 @@
 
 [section:overload2 basic_datagram_socket::async_send_to (2 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -3047,12 +3194,13 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -3060,7 +3208,9 @@
 
 [section:at_mark basic_datagram_socket::at_mark]
 
-[indexterm2 at_mark..basic_datagram_socket] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..basic_datagram_socket]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool ``[link boost_asio.reference.basic_datagram_socket.at_mark.overload1 at_mark]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.at_mark.overload1 more...]]``
@@ -3075,8 +3225,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark() const;
 
 
@@ -3087,6 +3239,7 @@
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
+
 [heading Exceptions]
     
 
@@ -3098,6 +3251,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3107,8 +3261,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark(
       boost::system::error_code & ec) const;
 
@@ -3125,12 +3281,14 @@
 
 ]
 
+
 [heading Return Value]
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
 
 
+
 [endsect]
 
 
@@ -3138,7 +3296,9 @@
 
 [section:available basic_datagram_socket::available]
 
-[indexterm2 available..basic_datagram_socket] Determine the number of bytes available for reading.
+[indexterm2 available..basic_datagram_socket]
+Determine the number of bytes available for reading.
+
 
   std::size_t ``[link boost_asio.reference.basic_datagram_socket.available.overload1 available]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.available.overload1 more...]]``
@@ -3153,8 +3313,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available() const;
 
 
@@ -3165,6 +3327,7 @@
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
+
 [heading Exceptions]
     
 
@@ -3176,6 +3339,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3185,8 +3349,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available(
       boost::system::error_code & ec) const;
 
@@ -3203,12 +3369,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
 
 
+
 [endsect]
 
 
@@ -3216,27 +3384,35 @@
 
 [section:basic_datagram_socket basic_datagram_socket::basic_datagram_socket]
 
-[indexterm2 basic_datagram_socket..basic_datagram_socket] Construct a basic_datagram_socket without opening it.
+[indexterm2 basic_datagram_socket..basic_datagram_socket]
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] without opening it.
+
 
- ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload1 basic_datagram_socket]``(
+ explicit ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload1 basic_datagram_socket]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload1 more...]]``
 
-Construct and open a basic_datagram_socket.
+
+Construct and open a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`].
+
 
   ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload2 basic_datagram_socket]``(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload2 more...]]``
 
-Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`], opening it and binding it to the given local endpoint.
+
 
   ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload3 basic_datagram_socket]``(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint);
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload3 more...]]``
 
-Construct a basic_datagram_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] on an existing native socket.
+
 
   ``[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket.overload4 basic_datagram_socket]``(
       boost::asio::io_service & io_service,
@@ -3247,13 +3423,15 @@
 
 [section:overload1 basic_datagram_socket::basic_datagram_socket (1 of 4 overloads)]
 
-Construct a basic_datagram_socket without opening it.
+
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] without opening it.
+
 
   basic_datagram_socket(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a datagram socket without opening it. The open() function must be called before data can be sent or received on the socket.
+This constructor creates a datagram socket without opening it. The `open()` function must be called before data can be sent or received on the socket.
 
 
 [heading Parameters]
@@ -3261,19 +3439,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_datagram_socket::basic_datagram_socket (2 of 4 overloads)]
 
-Construct and open a basic_datagram_socket.
+
+Construct and open a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`].
+
 
   basic_datagram_socket(
       boost::asio::io_service & io_service,
@@ -3288,12 +3469,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -3305,13 +3487,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_datagram_socket::basic_datagram_socket (3 of 4 overloads)]
 
-Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`], opening it and binding it to the given local endpoint.
+
 
   basic_datagram_socket(
       boost::asio::io_service & io_service,
@@ -3326,12 +3511,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[endpoint][An endpoint on the local machine to which the datagram socket will be bound.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -3343,13 +3529,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_datagram_socket::basic_datagram_socket (4 of 4 overloads)]
 
-Construct a basic_datagram_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] on an existing native socket.
+
 
   basic_datagram_socket(
       boost::asio::io_service & io_service,
@@ -3365,7 +3554,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the datagram socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
@@ -3373,6 +3562,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -3384,6 +3574,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3391,7 +3582,9 @@
 
 [section:bind basic_datagram_socket::bind]
 
-[indexterm2 bind..basic_datagram_socket] Bind the socket to the given local endpoint.
+[indexterm2 bind..basic_datagram_socket]
+Bind the socket to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -3408,8 +3601,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -3426,6 +3621,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -3435,6 +3631,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -3449,6 +3646,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3458,8 +3656,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -3479,6 +3679,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -3498,6 +3699,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3509,7 +3711,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_datagram_socket] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_datagram_socket]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -3530,6 +3734,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -3542,6 +3747,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -3558,7 +3765,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_datagram_socket] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_datagram_socket]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -3581,6 +3790,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -3593,7 +3804,9 @@
 
 [section:cancel basic_datagram_socket::cancel]
 
-[indexterm2 cancel..basic_datagram_socket] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..basic_datagram_socket]
+Cancel all asynchronous operations associated with the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.cancel.overload1 more...]]``
@@ -3608,12 +3821,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -3625,12 +3840,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -3638,6 +3856,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -3652,13 +3871,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -3670,12 +3891,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -3683,6 +3907,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -3695,7 +3920,9 @@
 
 [section:close basic_datagram_socket::close]
 
-[indexterm2 close..basic_datagram_socket] Close the socket.
+[indexterm2 close..basic_datagram_socket]
+Close the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.close.overload1 more...]]``
@@ -3710,12 +3937,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   void close();
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -3727,9 +3956,11 @@
 
 ]
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -3742,13 +3973,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -3760,6 +3993,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -3776,9 +4010,11 @@
 
 
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -3789,7 +4025,9 @@
 
 [section:connect basic_datagram_socket::connect]
 
-[indexterm2 connect..basic_datagram_socket] Connect the socket to the specified endpoint.
+[indexterm2 connect..basic_datagram_socket]
+Connect the socket to the specified endpoint.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.connect.overload1 connect]``(
       const endpoint_type & peer_endpoint);
@@ -3806,8 +4044,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   void connect(
       const endpoint_type & peer_endpoint);
 
@@ -3826,6 +4066,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -3835,6 +4076,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -3849,6 +4091,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3858,8 +4101,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code connect(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -3881,6 +4126,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -3900,6 +4146,7 @@
 
 
 
+
 [endsect]
 
 
@@ -3911,7 +4158,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_datagram_socket] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_datagram_socket]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -3932,6 +4181,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -3944,6 +4194,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -3960,7 +4212,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_datagram_socket] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_datagram_socket]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -3981,6 +4235,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -3993,6 +4248,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -4009,13 +4266,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_datagram_socket] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_datagram_socket]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -4030,6 +4289,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -4042,6 +4302,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -4055,7 +4317,9 @@
 
 [section:endpoint_type basic_datagram_socket::endpoint_type]
 
-[indexterm2 endpoint_type..basic_datagram_socket] The endpoint type.
+[indexterm2 endpoint_type..basic_datagram_socket]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -4077,17 +4341,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_datagram_socket] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_datagram_socket]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -4096,7 +4363,9 @@
 
 [section:get_option basic_datagram_socket::get_option]
 
-[indexterm2 get_option..basic_datagram_socket] Get an option from the socket.
+[indexterm2 get_option..basic_datagram_socket]
+Get an option from the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.get_option.overload1 get_option]``(
       GettableSocketOption & option) const;
@@ -4113,8 +4382,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   void get_option(
       GettableSocketOption & option) const;
 
@@ -4131,6 +4402,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -4140,6 +4412,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -4155,6 +4429,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4164,8 +4439,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   boost::system::error_code get_option(
       GettableSocketOption & option,
       boost::system::error_code & ec) const;
@@ -4185,6 +4462,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -4205,6 +4484,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4216,7 +4496,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_datagram_socket] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_datagram_socket]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -4231,7 +4513,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_datagram_socket] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_datagram_socket]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -4249,7 +4533,9 @@
 
 [section:io_control basic_datagram_socket::io_control]
 
-[indexterm2 io_control..basic_datagram_socket] Perform an IO control command on the socket.
+[indexterm2 io_control..basic_datagram_socket]
+Perform an IO control command on the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.io_control.overload1 io_control]``(
       IoControlCommand & command);
@@ -4266,8 +4552,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   void io_control(
       IoControlCommand & command);
 
@@ -4284,6 +4572,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -4293,6 +4582,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -4308,6 +4599,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4317,8 +4609,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   boost::system::error_code io_control(
       IoControlCommand & command,
       boost::system::error_code & ec);
@@ -4338,6 +4632,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -4358,6 +4654,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4369,17 +4666,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_datagram_socket] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_datagram_socket]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -4392,7 +4692,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 is_open..basic_datagram_socket] Determine whether the socket is open.
+[indexterm2 is_open..basic_datagram_socket]
+Determine whether the socket is open.
+
 
   bool is_open() const;
 
@@ -4407,7 +4709,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_datagram_socket] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_datagram_socket]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -4428,6 +4732,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -4440,6 +4745,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -4456,7 +4763,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_datagram_socket] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_datagram_socket]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -4477,6 +4786,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -4490,6 +4800,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -4502,7 +4814,9 @@
 
 [section:local_endpoint basic_datagram_socket::local_endpoint]
 
-[indexterm2 local_endpoint..basic_datagram_socket] Get the local endpoint of the socket.
+[indexterm2 local_endpoint..basic_datagram_socket]
+Get the local endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_datagram_socket.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.local_endpoint.overload1 more...]]``
@@ -4517,8 +4831,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -4529,6 +4845,7 @@
       
 An object that represents the local endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -4538,6 +4855,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -4551,6 +4869,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4560,8 +4879,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -4578,10 +4899,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -4600,6 +4923,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4607,13 +4931,17 @@
 
 [section:lowest_layer basic_datagram_socket::lowest_layer]
 
-[indexterm2 lowest_layer..basic_datagram_socket] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_datagram_socket]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_datagram_socket.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_datagram_socket.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.lowest_layer.overload2 more...]]``
 
@@ -4623,12 +4951,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -4637,6 +4967,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4646,12 +4977,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -4660,6 +4993,7 @@
 
 
 
+
 [endsect]
 
 
@@ -4671,7 +5005,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 lowest_layer_type..basic_datagram_socket] A basic_socket is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_datagram_socket]
+A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest layer.
+
 
   typedef basic_socket< Protocol, DatagramSocketService > lowest_layer_type;
 
@@ -5001,14 +5337,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -5028,7 +5365,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_datagram_socket] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_datagram_socket]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -5043,7 +5382,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_datagram_socket] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_datagram_socket]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -5058,7 +5399,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_datagram_socket] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_datagram_socket]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -5080,7 +5423,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_datagram_socket] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_datagram_socket]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -5095,7 +5440,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_datagram_socket] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_datagram_socket]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -5110,7 +5457,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 native..basic_datagram_socket] Get the native socket representation.
+[indexterm2 native..basic_datagram_socket]
+Get the native socket representation.
+
 
   native_type native();
 
@@ -5124,7 +5473,9 @@
 
 [section:native_type basic_datagram_socket::native_type]
 
-[indexterm2 native_type..basic_datagram_socket] The native representation of a socket.
+[indexterm2 native_type..basic_datagram_socket]
+The native representation of a socket.
+
 
   typedef DatagramSocketService::native_type native_type;
 
@@ -5146,7 +5497,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_datagram_socket] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_datagram_socket]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -5168,6 +5521,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -5180,7 +5535,9 @@
 
 [section:open basic_datagram_socket::open]
 
-[indexterm2 open..basic_datagram_socket] Open the socket using the specified protocol.
+[indexterm2 open..basic_datagram_socket]
+Open the socket using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -5197,8 +5554,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -5215,6 +5574,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -5224,6 +5584,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -5236,6 +5597,7 @@
 
 
 
+
 [endsect]
 
 
@@ -5245,8 +5607,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -5266,6 +5630,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -5283,6 +5648,7 @@
 
 
 
+
 [endsect]
 
 
@@ -5291,7 +5657,9 @@
 
 [section:protocol_type basic_datagram_socket::protocol_type]
 
-[indexterm2 protocol_type..basic_datagram_socket] The protocol type.
+[indexterm2 protocol_type..basic_datagram_socket]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -5309,7 +5677,9 @@
 
 [section:receive basic_datagram_socket::receive]
 
-[indexterm2 receive..basic_datagram_socket] Receive some data on a connected socket.
+[indexterm2 receive..basic_datagram_socket]
+Receive some data on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -5335,8 +5705,10 @@
 
 [section:overload1 basic_datagram_socket::receive (1 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -5355,10 +5727,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -5368,20 +5742,21 @@
 
 ]
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected datagram socket.
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.receive(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -5391,8 +5766,10 @@
 
 [section:overload2 basic_datagram_socket::receive (2 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -5414,10 +5791,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -5427,20 +5806,24 @@
 
 ]
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_datagram_socket::receive (3 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -5465,16 +5848,19 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
@@ -5486,7 +5872,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_datagram_socket] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_datagram_socket]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -5507,6 +5895,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -5519,6 +5908,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -5531,7 +5922,9 @@
 
 [section:receive_from basic_datagram_socket::receive_from]
 
-[indexterm2 receive_from..basic_datagram_socket] Receive a datagram with the endpoint of the sender.
+[indexterm2 receive_from..basic_datagram_socket]
+Receive a datagram with the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -5560,8 +5953,10 @@
 
 [section:overload1 basic_datagram_socket::receive_from (1 of 3 overloads)]
 
+
 Receive a datagram with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -5583,10 +5978,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -5596,18 +5993,18 @@
 
 ]
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint sender_endpoint;
    socket.receive_from(
        boost::asio::buffer(data, size), sender_endpoint);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -5617,8 +6014,10 @@
 
 [section:overload2 basic_datagram_socket::receive_from (2 of 3 overloads)]
 
+
 Receive a datagram with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -5643,10 +6042,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -5658,14 +6059,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_datagram_socket::receive_from (3 of 3 overloads)]
 
+
 Receive a datagram with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -5693,12 +6097,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
 
 
+
 [endsect]
 
 
@@ -5710,7 +6116,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_datagram_socket] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_datagram_socket]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -5731,6 +6139,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -5743,6 +6152,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -5755,7 +6166,9 @@
 
 [section:remote_endpoint basic_datagram_socket::remote_endpoint]
 
-[indexterm2 remote_endpoint..basic_datagram_socket] Get the remote endpoint of the socket.
+[indexterm2 remote_endpoint..basic_datagram_socket]
+Get the remote endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_datagram_socket.remote_endpoint.overload1 remote_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_datagram_socket.remote_endpoint.overload1 more...]]``
@@ -5770,8 +6183,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint() const;
 
 
@@ -5782,6 +6197,7 @@
       
 An object that represents the remote endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -5791,6 +6207,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -5804,6 +6221,7 @@
 
 
 
+
 [endsect]
 
 
@@ -5813,8 +6231,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint(
       boost::system::error_code & ec) const;
 
@@ -5831,10 +6251,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the remote endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -5853,6 +6275,7 @@
 
 
 
+
 [endsect]
 
 
@@ -5864,7 +6287,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_datagram_socket] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_datagram_socket]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -5885,6 +6310,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -5897,6 +6323,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -5909,7 +6337,9 @@
 
 [section:send basic_datagram_socket::send]
 
-[indexterm2 send..basic_datagram_socket] Send some data on a connected socket.
+[indexterm2 send..basic_datagram_socket]
+Send some data on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -5935,8 +6365,10 @@
 
 [section:overload1 basic_datagram_socket::send (1 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -5955,10 +6387,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -5968,20 +6402,21 @@
 
 ]
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected datagram socket.
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.send(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -5991,8 +6426,10 @@
 
 [section:overload2 basic_datagram_socket::send (2 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -6014,10 +6451,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -6027,20 +6466,24 @@
 
 ]
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_datagram_socket::send (3 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -6065,16 +6508,19 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected datagram socket.
 
 
 
+
 [endsect]
 
 
@@ -6086,7 +6532,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_datagram_socket] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_datagram_socket]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -6107,6 +6555,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -6119,6 +6568,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -6135,7 +6586,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_datagram_socket] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_datagram_socket]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -6156,6 +6609,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -6168,6 +6622,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_datagram_socket.hpp]
@@ -6180,7 +6636,9 @@
 
 [section:send_to basic_datagram_socket::send_to]
 
-[indexterm2 send_to..basic_datagram_socket] Send a datagram to the specified endpoint.
+[indexterm2 send_to..basic_datagram_socket]
+Send a datagram to the specified endpoint.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -6209,8 +6667,10 @@
 
 [section:overload1 basic_datagram_socket::send_to (1 of 3 overloads)]
 
+
 Send a datagram to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -6232,10 +6692,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -6245,18 +6707,18 @@
 
 ]
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint destination(
        boost::asio::ip::address::from_string("1.2.3.4"), 12345);
    socket.send_to(boost::asio::buffer(data, size), destination);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -6266,8 +6728,10 @@
 
 [section:overload2 basic_datagram_socket::send_to (2 of 3 overloads)]
 
+
 Send a datagram to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -6292,10 +6756,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -6307,14 +6773,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_datagram_socket::send_to (3 of 3 overloads)]
 
+
 Send a datagram to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -6342,12 +6811,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
 
 
+
 [endsect]
 
 
@@ -6359,7 +6830,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_datagram_socket] The service associated with the I/O object.
+[indexterm2 service..basic_datagram_socket]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -6374,7 +6847,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_datagram_socket] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_datagram_socket]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef DatagramSocketService service_type;
 
@@ -6392,7 +6867,9 @@
 
 [section:set_option basic_datagram_socket::set_option]
 
-[indexterm2 set_option..basic_datagram_socket] Set an option on the socket.
+[indexterm2 set_option..basic_datagram_socket]
+Set an option on the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.set_option.overload1 set_option]``(
       const SettableSocketOption & option);
@@ -6409,8 +6886,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   void set_option(
       const SettableSocketOption & option);
 
@@ -6427,6 +6906,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -6436,6 +6916,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -6450,6 +6932,7 @@
 
 
 
+
 [endsect]
 
 
@@ -6459,8 +6942,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   boost::system::error_code set_option(
       const SettableSocketOption & option,
       boost::system::error_code & ec);
@@ -6480,6 +6965,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -6499,6 +6986,7 @@
 
 
 
+
 [endsect]
 
 
@@ -6506,7 +6994,9 @@
 
 [section:shutdown basic_datagram_socket::shutdown]
 
-[indexterm2 shutdown..basic_datagram_socket] Disable sends or receives on the socket.
+[indexterm2 shutdown..basic_datagram_socket]
+Disable sends or receives on the socket.
+
 
   void ``[link boost_asio.reference.basic_datagram_socket.shutdown.overload1 shutdown]``(
       shutdown_type what);
@@ -6523,8 +7013,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   void shutdown(
       shutdown_type what);
 
@@ -6541,6 +7033,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -6550,6 +7043,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -6563,6 +7057,7 @@
 
 
 
+
 [endsect]
 
 
@@ -6572,8 +7067,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   boost::system::error_code shutdown(
       shutdown_type what,
       boost::system::error_code & ec);
@@ -6593,6 +7090,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -6611,6 +7109,7 @@
 
 
 
+
 [endsect]
 
 
@@ -6622,7 +7121,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_datagram_socket] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_datagram_socket]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -6660,8 +7161,10 @@
 
 [section:basic_deadline_timer basic_deadline_timer]
 
+
 Provides waitable timer functionality.
 
+
   template<
       typename Time,
       typename ``[link boost_asio.reference.TimeTraits TimeTraits]`` = boost::asio::time_traits<Time>,
@@ -6781,16 +7284,19 @@
 
 ]
 
-The basic_deadline_timer class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
+The [link boost_asio.reference.basic_deadline_timer `basic_deadline_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
-Most applications will use the boost::asio::deadline\_timer typedef.
+A deadline timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
+
+Most applications will use the `boost::asio::deadline_timer` typedef.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Examples]
   
@@ -6808,6 +7314,7 @@
 
 
 
+
 Performing an asynchronous wait:
 
    void handler(const boost::system::error_code& error)
@@ -6830,6 +7337,7 @@
 
 
 
+
 [heading Changing an active deadline_timer's expiry time]
   
 
@@ -6865,9 +7373,11 @@
 
 * The boost::asio::basic_deadline_timer::expires_from_now() function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
+
 * If a wait handler is cancelled, the boost::system::error_code passed to it contains the value boost::asio::error::operation_aborted.
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_deadline_timer.hpp]
@@ -6877,7 +7387,9 @@
 
 [section:async_wait basic_deadline_timer::async_wait]
 
-[indexterm2 async_wait..basic_deadline_timer] Start an asynchronous wait on the timer.
+[indexterm2 async_wait..basic_deadline_timer]
+Start an asynchronous wait on the timer.
+
 
   template<
       typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
@@ -6887,13 +7399,15 @@
 
 This function may be used to initiate an asynchronous wait against the timer. It always returns immediately.
 
-For each call to async\_wait(), the supplied handler will be called exactly once. The handler will be called when:
+For each call to `async_wait()`, the supplied handler will be called exactly once. The handler will be called when:
 
 
 * The timer has expired.
 
+
 * The timer was cancelled, in which case the handler is passed the error code boost::asio::error::operation_aborted.
 
+
 [heading Parameters]
     
 
@@ -6905,32 +7419,39 @@
      const boost::system::error_code& error // Result of operation.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 [section:basic_deadline_timer basic_deadline_timer::basic_deadline_timer]
 
-[indexterm2 basic_deadline_timer..basic_deadline_timer] Constructor.
+[indexterm2 basic_deadline_timer..basic_deadline_timer]
+Constructor.
+
 
- ``[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload1 basic_deadline_timer]``(
+ explicit ``[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload1 basic_deadline_timer]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload1 more...]]``
 
+
 Constructor to set a particular expiry time as an absolute time.
 
+
   ``[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload2 basic_deadline_timer]``(
       boost::asio::io_service & io_service,
       const time_type & expiry_time);
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload2 more...]]``
 
+
 Constructor to set a particular expiry time relative to now.
 
+
   ``[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer.overload3 basic_deadline_timer]``(
       boost::asio::io_service & io_service,
       const duration_type & expiry_time);
@@ -6939,13 +7460,15 @@
 
 [section:overload1 basic_deadline_timer::basic_deadline_timer (1 of 3 overloads)]
 
+
 Constructor.
 
+
   basic_deadline_timer(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a timer without setting an expiry time. The expires\_at() or expires\_from\_now() functions must be called to set an expiry time before the timer can be waited on.
+This constructor creates a timer without setting an expiry time. The `expires_at()` or `expires_from_now()` functions must be called to set an expiry time before the timer can be waited on.
 
 
 [heading Parameters]
@@ -6953,20 +7476,23 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_deadline_timer::basic_deadline_timer (2 of 3 overloads)]
 
+
 Constructor to set a particular expiry time as an absolute time.
 
+
   basic_deadline_timer(
       boost::asio::io_service & io_service,
       const time_type & expiry_time);
@@ -6980,7 +7506,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
 
 [[expiry_time][The expiry time to be used for the timer, expressed as an absolute time. ]]
 
@@ -6988,14 +7514,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_deadline_timer::basic_deadline_timer (3 of 3 overloads)]
 
+
 Constructor to set a particular expiry time relative to now.
 
+
   basic_deadline_timer(
       boost::asio::io_service & io_service,
       const duration_type & expiry_time);
@@ -7009,7 +7538,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
 
 [[expiry_time][The expiry time to be used for the timer, relative to now. ]]
 
@@ -7017,6 +7546,7 @@
 
 
 
+
 [endsect]
 
 
@@ -7024,7 +7554,9 @@
 
 [section:cancel basic_deadline_timer::cancel]
 
-[indexterm2 cancel..basic_deadline_timer] Cancel any asynchronous operations that are waiting on the timer.
+[indexterm2 cancel..basic_deadline_timer]
+Cancel any asynchronous operations that are waiting on the timer.
+
 
   std::size_t ``[link boost_asio.reference.basic_deadline_timer.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.cancel.overload1 more...]]``
@@ -7036,12 +7568,14 @@
 
 [section:overload1 basic_deadline_timer::cancel (1 of 2 overloads)]
 
+
 Cancel any asynchronous operations that are waiting on the timer.
 
+
   std::size_t cancel();
 
 
-This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 Cancelling the timer does not change the expiry time.
 
@@ -7050,16 +7584,28 @@
       
 The number of asynchronous operations that were cancelled.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
 
+[heading Remarks]
+
+If the timer has already expired when `cancel()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
+
+
 
 [endsect]
 
@@ -7067,13 +7613,15 @@
 
 [section:overload2 basic_deadline_timer::cancel (2 of 2 overloads)]
 
+
 Cancel any asynchronous operations that are waiting on the timer.
 
+
   std::size_t cancel(
       boost::system::error_code & ec);
 
 
-This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 Cancelling the timer does not change the expiry time.
 
@@ -7087,9 +7635,21 @@
 
 ]
 
+
 [heading Return Value]
       
-The number of asynchronous operations that were cancelled.
+The number of asynchronous operations that were cancelled.
+
+
+[heading Remarks]
+
+If the timer has already expired when `cancel()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
 
 
 
@@ -7101,7 +7661,9 @@
 
 [section:duration_type basic_deadline_timer::duration_type]
 
-[indexterm2 duration_type..basic_deadline_timer] The duration type.
+[indexterm2 duration_type..basic_deadline_timer]
+The duration type.
+
 
   typedef traits_type::duration_type duration_type;
 
@@ -7119,13 +7681,17 @@
 
 [section:expires_at basic_deadline_timer::expires_at]
 
-[indexterm2 expires_at..basic_deadline_timer] Get the timer's expiry time as an absolute time.
+[indexterm2 expires_at..basic_deadline_timer]
+Get the timer's expiry time as an absolute time.
+
 
   time_type ``[link boost_asio.reference.basic_deadline_timer.expires_at.overload1 expires_at]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.expires_at.overload1 more...]]``
 
+
 Set the timer's expiry time as an absolute time.
 
+
   std::size_t ``[link boost_asio.reference.basic_deadline_timer.expires_at.overload2 expires_at]``(
       const time_type & expiry_time);
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.expires_at.overload2 more...]]``
@@ -7138,8 +7704,10 @@
 
 [section:overload1 basic_deadline_timer::expires_at (1 of 3 overloads)]
 
+
 Get the timer's expiry time as an absolute time.
 
+
   time_type expires_at() const;
 
 
@@ -7152,13 +7720,15 @@
 
 [section:overload2 basic_deadline_timer::expires_at (2 of 3 overloads)]
 
+
 Set the timer's expiry time as an absolute time.
 
+
   std::size_t expires_at(
       const time_type & expiry_time);
 
 
-This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [heading Parameters]
@@ -7170,20 +7740,33 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of asynchronous operations that were cancelled.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
 
+[heading Remarks]
+
+If the timer has already expired when `expires_at()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
+
+
 
 [endsect]
 
@@ -7191,14 +7774,16 @@
 
 [section:overload3 basic_deadline_timer::expires_at (3 of 3 overloads)]
 
+
 Set the timer's expiry time as an absolute time.
 
+
   std::size_t expires_at(
       const time_type & expiry_time,
       boost::system::error_code & ec);
 
 
-This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [heading Parameters]
@@ -7212,9 +7797,21 @@
 
 ]
 
+
 [heading Return Value]
       
-The number of asynchronous operations that were cancelled.
+The number of asynchronous operations that were cancelled.
+
+
+[heading Remarks]
+
+If the timer has already expired when `expires_at()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
 
 
 
@@ -7225,13 +7822,17 @@
 
 [section:expires_from_now basic_deadline_timer::expires_from_now]
 
-[indexterm2 expires_from_now..basic_deadline_timer] Get the timer's expiry time relative to now.
+[indexterm2 expires_from_now..basic_deadline_timer]
+Get the timer's expiry time relative to now.
+
 
   duration_type ``[link boost_asio.reference.basic_deadline_timer.expires_from_now.overload1 expires_from_now]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.expires_from_now.overload1 more...]]``
 
+
 Set the timer's expiry time relative to now.
 
+
   std::size_t ``[link boost_asio.reference.basic_deadline_timer.expires_from_now.overload2 expires_from_now]``(
       const duration_type & expiry_time);
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.expires_from_now.overload2 more...]]``
@@ -7244,8 +7845,10 @@
 
 [section:overload1 basic_deadline_timer::expires_from_now (1 of 3 overloads)]
 
+
 Get the timer's expiry time relative to now.
 
+
   duration_type expires_from_now() const;
 
 
@@ -7258,13 +7861,15 @@
 
 [section:overload2 basic_deadline_timer::expires_from_now (2 of 3 overloads)]
 
+
 Set the timer's expiry time relative to now.
 
+
   std::size_t expires_from_now(
       const duration_type & expiry_time);
 
 
-This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [heading Parameters]
@@ -7276,20 +7881,33 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of asynchronous operations that were cancelled.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. ]]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
 
+[heading Remarks]
+
+If the timer has already expired when `expires_from_now()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
+
+
 
 [endsect]
 
@@ -7297,14 +7915,16 @@
 
 [section:overload3 basic_deadline_timer::expires_from_now (3 of 3 overloads)]
 
+
 Set the timer's expiry time relative to now.
 
+
   std::size_t expires_from_now(
       const duration_type & expiry_time,
       boost::system::error_code & ec);
 
 
-This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [heading Parameters]
@@ -7318,9 +7938,21 @@
 
 ]
 
+
 [heading Return Value]
       
-The number of asynchronous operations that were cancelled.
+The number of asynchronous operations that were cancelled.
+
+
+[heading Remarks]
+
+If the timer has already expired when `expires_from_now()` is called, then the handlers for asynchronous wait operations will:
+* have already been invoked; or
+
+* have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
+
+
+
 
 
 
@@ -7335,17 +7967,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_deadline_timer] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_deadline_timer]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -7358,7 +7993,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_deadline_timer] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_deadline_timer]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -7373,7 +8010,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_deadline_timer] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_deadline_timer]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -7395,17 +8034,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_deadline_timer] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_deadline_timer]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -7418,7 +8060,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_deadline_timer] The service associated with the I/O object.
+[indexterm2 service..basic_deadline_timer]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -7433,7 +8077,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_deadline_timer] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_deadline_timer]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef TimerService service_type;
 
@@ -7452,7 +8098,9 @@
 
 [section:time_type basic_deadline_timer::time_type]
 
-[indexterm2 time_type..basic_deadline_timer] The time type.
+[indexterm2 time_type..basic_deadline_timer]
+The time type.
+
 
   typedef traits_type::time_type time_type;
 
@@ -7471,7 +8119,9 @@
 
 [section:traits_type basic_deadline_timer::traits_type]
 
-[indexterm2 traits_type..basic_deadline_timer] The time traits type.
+[indexterm2 traits_type..basic_deadline_timer]
+The time traits type.
+
 
   typedef TimeTraits traits_type;
 
@@ -7489,7 +8139,9 @@
 
 [section:wait basic_deadline_timer::wait]
 
-[indexterm2 wait..basic_deadline_timer] Perform a blocking wait on the timer.
+[indexterm2 wait..basic_deadline_timer]
+Perform a blocking wait on the timer.
+
 
   void ``[link boost_asio.reference.basic_deadline_timer.wait.overload1 wait]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_deadline_timer.wait.overload1 more...]]``
@@ -7501,8 +8153,10 @@
 
 [section:overload1 basic_deadline_timer::wait (1 of 2 overloads)]
 
+
 Perform a blocking wait on the timer.
 
+
   void wait();
 
 
@@ -7520,14 +8174,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_deadline_timer::wait (2 of 2 overloads)]
 
+
 Perform a blocking wait on the timer.
 
+
   void wait(
       boost::system::error_code & ec);
 
@@ -7546,6 +8203,7 @@
 
 
 
+
 [endsect]
 
 
@@ -7556,8 +8214,10 @@
 
 [section:basic_io_object basic_io_object]
 
+
 Base class for all I/O objects.
 
+
   template<
       typename ``[link boost_asio.reference.IoObjectService IoObjectService]``>
   class basic_io_object :
@@ -7641,7 +8301,9 @@
 
 [section:basic_io_object basic_io_object::basic_io_object]
 
-[indexterm2 basic_io_object..basic_io_object] Construct a basic_io_object.
+[indexterm2 basic_io_object..basic_io_object]
+Construct a [link boost_asio.reference.basic_io_object `basic_io_object`].
+
 
   basic_io_object(
       boost::asio::io_service & io_service);
@@ -7661,17 +8323,20 @@
 
 [section:get_io_service basic_io_object::get_io_service]
 
-[indexterm2 get_io_service..basic_io_object] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_io_object]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -7681,7 +8346,9 @@
 
 [section:implementation basic_io_object::implementation]
 
-[indexterm2 implementation..basic_io_object] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_io_object]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -7693,7 +8360,9 @@
 
 [section:implementation_type basic_io_object::implementation_type]
 
-[indexterm2 implementation_type..basic_io_object] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_io_object]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -7712,17 +8381,20 @@
 
 [section:io_service basic_io_object::io_service]
 
-[indexterm2 io_service..basic_io_object] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_io_object]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -7732,7 +8404,9 @@
 
 [section:service basic_io_object::service]
 
-[indexterm2 service..basic_io_object] The service associated with the I/O object.
+[indexterm2 service..basic_io_object]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -7744,7 +8418,9 @@
 
 [section:service_type basic_io_object::service_type]
 
-[indexterm2 service_type..basic_io_object] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_io_object]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef IoObjectService service_type;
 
@@ -7763,7 +8439,9 @@
 
 [section:_basic_io_object basic_io_object::~basic_io_object]
 
-[indexterm2 ~basic_io_object..basic_io_object] Protected destructor to prevent deletion through this type.
+[indexterm2 ~basic_io_object..basic_io_object]
+Protected destructor to prevent deletion through this type.
+
 
   ~basic_io_object();
 
@@ -7784,8 +8462,10 @@
 
 [section:basic_raw_socket basic_raw_socket]
 
+
 Provides raw-oriented socket functionality.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.RawSocketService RawSocketService]`` = raw_socket_service<Protocol>>
@@ -8147,14 +8827,15 @@
 
 ]
 
-The basic_raw_socket class template provides asynchronous and blocking raw-oriented socket functionality.
+The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class template provides asynchronous and blocking raw-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -8165,7 +8846,9 @@
 
 [section:assign basic_raw_socket::assign]
 
-[indexterm2 assign..basic_raw_socket] Assign an existing native socket to the socket.
+[indexterm2 assign..basic_raw_socket]
+Assign an existing native socket to the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -8184,8 +8867,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_socket);
@@ -8201,8 +8886,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_socket,
@@ -8221,7 +8908,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 async_connect..basic_raw_socket] Start an asynchronous connect.
+[indexterm2 async_connect..basic_raw_socket]
+Start an asynchronous connect.
+
 
   void async_connect(
       const endpoint_type & peer_endpoint,
@@ -8246,10 +8935,11 @@
      const boost::system::error_code& error // Result of operation
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -8274,12 +8964,15 @@
 
 
 
+
 [endsect]
 
 
 [section:async_receive basic_raw_socket::async_receive]
 
-[indexterm2 async_receive..basic_raw_socket] Start an asynchronous receive on a connected socket.
+[indexterm2 async_receive..basic_raw_socket]
+Start an asynchronous receive on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -8301,8 +8994,10 @@
 
 [section:overload1 basic_raw_socket::async_receive (1 of 2 overloads)]
 
+
 Start an asynchronous receive on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -8328,24 +9023,25 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_receive operation can only be used with a connected socket. Use the async\_receive\_from function to receive data on an unconnected raw socket.
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -8355,8 +9051,10 @@
 
 [section:overload2 basic_raw_socket::async_receive (2 of 2 overloads)]
 
+
 Start an asynchronous receive on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -8385,16 +9083,18 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_receive operation can only be used with a connected socket. Use the async\_receive\_from function to receive data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
@@ -8402,7 +9102,9 @@
 
 [section:async_receive_from basic_raw_socket::async_receive_from]
 
-[indexterm2 async_receive_from..basic_raw_socket] Start an asynchronous receive.
+[indexterm2 async_receive_from..basic_raw_socket]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -8426,8 +9128,10 @@
 
 [section:overload1 basic_raw_socket::async_receive_from (1 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -8456,21 +9160,21 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive_from(
        boost::asio::buffer(data, size), 0, sender_endpoint, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -8480,8 +9184,10 @@
 
 [section:overload2 basic_raw_socket::async_receive_from (2 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -8513,12 +9219,13 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -8526,7 +9233,9 @@
 
 [section:async_send basic_raw_socket::async_send]
 
-[indexterm2 async_send..basic_raw_socket] Start an asynchronous send on a connected socket.
+[indexterm2 async_send..basic_raw_socket]
+Start an asynchronous send on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -8548,8 +9257,10 @@
 
 [section:overload1 basic_raw_socket::async_send (1 of 2 overloads)]
 
+
 Start an asynchronous send on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -8575,24 +9286,25 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_send operation can only be used with a connected socket. Use the async\_send\_to function to send data on an unconnected raw socket.
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_send(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -8602,8 +9314,10 @@
 
 [section:overload2 basic_raw_socket::async_send (2 of 2 overloads)]
 
+
 Start an asynchronous send on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -8632,16 +9346,18 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 The async\_send operation can only be used with a connected socket. Use the async\_send\_to function to send data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
@@ -8649,7 +9365,9 @@
 
 [section:async_send_to basic_raw_socket::async_send_to]
 
-[indexterm2 async_send_to..basic_raw_socket] Start an asynchronous send.
+[indexterm2 async_send_to..basic_raw_socket]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -8673,8 +9391,10 @@
 
 [section:overload1 basic_raw_socket::async_send_to (1 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -8703,14 +9423,14 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint destination(
        boost::asio::ip::address::from_string("1.2.3.4"), 12345);
@@ -8718,8 +9438,8 @@
        boost::asio::buffer(data, size), destination, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -8729,8 +9449,10 @@
 
 [section:overload2 basic_raw_socket::async_send_to (2 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -8762,12 +9484,13 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -8775,7 +9498,9 @@
 
 [section:at_mark basic_raw_socket::at_mark]
 
-[indexterm2 at_mark..basic_raw_socket] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..basic_raw_socket]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool ``[link boost_asio.reference.basic_raw_socket.at_mark.overload1 at_mark]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.at_mark.overload1 more...]]``
@@ -8790,8 +9515,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark() const;
 
 
@@ -8802,6 +9529,7 @@
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
+
 [heading Exceptions]
     
 
@@ -8813,6 +9541,7 @@
 
 
 
+
 [endsect]
 
 
@@ -8822,8 +9551,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark(
       boost::system::error_code & ec) const;
 
@@ -8840,12 +9571,14 @@
 
 ]
 
+
 [heading Return Value]
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
 
 
+
 [endsect]
 
 
@@ -8853,7 +9586,9 @@
 
 [section:available basic_raw_socket::available]
 
-[indexterm2 available..basic_raw_socket] Determine the number of bytes available for reading.
+[indexterm2 available..basic_raw_socket]
+Determine the number of bytes available for reading.
+
 
   std::size_t ``[link boost_asio.reference.basic_raw_socket.available.overload1 available]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.available.overload1 more...]]``
@@ -8868,8 +9603,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available() const;
 
 
@@ -8880,6 +9617,7 @@
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
+
 [heading Exceptions]
     
 
@@ -8891,6 +9629,7 @@
 
 
 
+
 [endsect]
 
 
@@ -8900,8 +9639,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available(
       boost::system::error_code & ec) const;
 
@@ -8918,12 +9659,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
 
 
+
 [endsect]
 
 
@@ -8931,27 +9674,35 @@
 
 [section:basic_raw_socket basic_raw_socket::basic_raw_socket]
 
-[indexterm2 basic_raw_socket..basic_raw_socket] Construct a basic_raw_socket without opening it.
+[indexterm2 basic_raw_socket..basic_raw_socket]
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] without opening it.
+
 
- ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload1 basic_raw_socket]``(
+ explicit ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload1 basic_raw_socket]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload1 more...]]``
 
-Construct and open a basic_raw_socket.
+
+Construct and open a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`].
+
 
   ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload2 basic_raw_socket]``(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload2 more...]]``
 
-Construct a basic_raw_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`], opening it and binding it to the given local endpoint.
+
 
   ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload3 basic_raw_socket]``(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint);
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload3 more...]]``
 
-Construct a basic_raw_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] on an existing native socket.
+
 
   ``[link boost_asio.reference.basic_raw_socket.basic_raw_socket.overload4 basic_raw_socket]``(
       boost::asio::io_service & io_service,
@@ -8962,13 +9713,15 @@
 
 [section:overload1 basic_raw_socket::basic_raw_socket (1 of 4 overloads)]
 
-Construct a basic_raw_socket without opening it.
+
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] without opening it.
+
 
   basic_raw_socket(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a raw socket without opening it. The open() function must be called before data can be sent or received on the socket.
+This constructor creates a raw socket without opening it. The `open()` function must be called before data can be sent or received on the socket.
 
 
 [heading Parameters]
@@ -8976,19 +9729,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_raw_socket::basic_raw_socket (2 of 4 overloads)]
 
-Construct and open a basic_raw_socket.
+
+Construct and open a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`].
+
 
   basic_raw_socket(
       boost::asio::io_service & io_service,
@@ -9003,12 +9759,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9020,13 +9777,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_raw_socket::basic_raw_socket (3 of 4 overloads)]
 
-Construct a basic_raw_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`], opening it and binding it to the given local endpoint.
+
 
   basic_raw_socket(
       boost::asio::io_service & io_service,
@@ -9041,12 +9801,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[endpoint][An endpoint on the local machine to which the raw socket will be bound.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9058,13 +9819,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_raw_socket::basic_raw_socket (4 of 4 overloads)]
 
-Construct a basic_raw_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] on an existing native socket.
+
 
   basic_raw_socket(
       boost::asio::io_service & io_service,
@@ -9080,7 +9844,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the raw socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
@@ -9088,6 +9852,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9099,6 +9864,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9106,7 +9872,9 @@
 
 [section:bind basic_raw_socket::bind]
 
-[indexterm2 bind..basic_raw_socket] Bind the socket to the given local endpoint.
+[indexterm2 bind..basic_raw_socket]
+Bind the socket to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -9123,8 +9891,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -9141,6 +9911,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9150,6 +9921,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -9164,6 +9936,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9173,8 +9946,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -9194,6 +9969,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -9213,6 +9989,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9224,7 +10001,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_raw_socket] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_raw_socket]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -9245,6 +10024,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -9257,6 +10037,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -9273,7 +10055,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_raw_socket] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_raw_socket]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -9296,6 +10080,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -9308,7 +10094,9 @@
 
 [section:cancel basic_raw_socket::cancel]
 
-[indexterm2 cancel..basic_raw_socket] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..basic_raw_socket]
+Cancel all asynchronous operations associated with the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.cancel.overload1 more...]]``
@@ -9323,12 +10111,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -9340,12 +10130,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -9353,6 +10146,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -9367,13 +10161,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -9385,12 +10181,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -9398,6 +10197,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -9410,7 +10210,9 @@
 
 [section:close basic_raw_socket::close]
 
-[indexterm2 close..basic_raw_socket] Close the socket.
+[indexterm2 close..basic_raw_socket]
+Close the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.close.overload1 more...]]``
@@ -9425,12 +10227,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   void close();
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -9442,9 +10246,11 @@
 
 ]
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -9457,13 +10263,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -9475,6 +10283,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -9491,9 +10300,11 @@
 
 
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -9504,7 +10315,9 @@
 
 [section:connect basic_raw_socket::connect]
 
-[indexterm2 connect..basic_raw_socket] Connect the socket to the specified endpoint.
+[indexterm2 connect..basic_raw_socket]
+Connect the socket to the specified endpoint.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.connect.overload1 connect]``(
       const endpoint_type & peer_endpoint);
@@ -9521,8 +10334,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   void connect(
       const endpoint_type & peer_endpoint);
 
@@ -9541,6 +10356,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9550,6 +10366,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -9564,6 +10381,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9573,8 +10391,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code connect(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -9596,6 +10416,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -9615,6 +10436,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9626,7 +10448,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_raw_socket] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_raw_socket]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -9647,6 +10471,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -9659,6 +10484,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -9675,7 +10502,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_raw_socket] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_raw_socket]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -9696,6 +10525,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -9708,6 +10538,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -9724,13 +10556,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_raw_socket] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_raw_socket]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -9745,6 +10579,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -9757,6 +10592,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -9770,7 +10607,9 @@
 
 [section:endpoint_type basic_raw_socket::endpoint_type]
 
-[indexterm2 endpoint_type..basic_raw_socket] The endpoint type.
+[indexterm2 endpoint_type..basic_raw_socket]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -9792,17 +10631,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_raw_socket] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_raw_socket]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -9811,7 +10653,9 @@
 
 [section:get_option basic_raw_socket::get_option]
 
-[indexterm2 get_option..basic_raw_socket] Get an option from the socket.
+[indexterm2 get_option..basic_raw_socket]
+Get an option from the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.get_option.overload1 get_option]``(
       GettableSocketOption & option) const;
@@ -9828,8 +10672,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   void get_option(
       GettableSocketOption & option) const;
 
@@ -9846,6 +10692,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -9855,6 +10702,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -9870,6 +10719,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9879,8 +10729,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   boost::system::error_code get_option(
       GettableSocketOption & option,
       boost::system::error_code & ec) const;
@@ -9900,6 +10752,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -9920,6 +10774,7 @@
 
 
 
+
 [endsect]
 
 
@@ -9931,7 +10786,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_raw_socket] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_raw_socket]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -9946,7 +10803,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_raw_socket] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_raw_socket]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -9964,7 +10823,9 @@
 
 [section:io_control basic_raw_socket::io_control]
 
-[indexterm2 io_control..basic_raw_socket] Perform an IO control command on the socket.
+[indexterm2 io_control..basic_raw_socket]
+Perform an IO control command on the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.io_control.overload1 io_control]``(
       IoControlCommand & command);
@@ -9981,8 +10842,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   void io_control(
       IoControlCommand & command);
 
@@ -9999,6 +10862,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -10008,6 +10872,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -10023,6 +10889,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10032,8 +10899,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   boost::system::error_code io_control(
       IoControlCommand & command,
       boost::system::error_code & ec);
@@ -10053,6 +10922,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -10073,6 +10944,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10084,17 +10956,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_raw_socket] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_raw_socket]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -10107,7 +10982,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 is_open..basic_raw_socket] Determine whether the socket is open.
+[indexterm2 is_open..basic_raw_socket]
+Determine whether the socket is open.
+
 
   bool is_open() const;
 
@@ -10122,7 +10999,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_raw_socket] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_raw_socket]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -10143,6 +11022,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -10155,6 +11035,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -10171,7 +11053,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_raw_socket] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_raw_socket]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -10192,6 +11076,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -10205,6 +11090,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -10217,7 +11104,9 @@
 
 [section:local_endpoint basic_raw_socket::local_endpoint]
 
-[indexterm2 local_endpoint..basic_raw_socket] Get the local endpoint of the socket.
+[indexterm2 local_endpoint..basic_raw_socket]
+Get the local endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_raw_socket.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.local_endpoint.overload1 more...]]``
@@ -10232,8 +11121,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -10244,6 +11135,7 @@
       
 An object that represents the local endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -10253,6 +11145,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -10266,6 +11159,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10275,8 +11169,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -10293,10 +11189,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -10315,6 +11213,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10322,13 +11221,17 @@
 
 [section:lowest_layer basic_raw_socket::lowest_layer]
 
-[indexterm2 lowest_layer..basic_raw_socket] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_raw_socket]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_raw_socket.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_raw_socket.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.lowest_layer.overload2 more...]]``
 
@@ -10338,12 +11241,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -10352,6 +11257,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10361,12 +11267,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -10375,6 +11283,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10386,7 +11295,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 lowest_layer_type..basic_raw_socket] A basic_socket is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_raw_socket]
+A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest layer.
+
 
   typedef basic_socket< Protocol, RawSocketService > lowest_layer_type;
 
@@ -10716,14 +11627,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -10743,7 +11655,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_raw_socket] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_raw_socket]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -10758,7 +11672,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_raw_socket] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_raw_socket]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -10773,7 +11689,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_raw_socket] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_raw_socket]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -10795,7 +11713,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_raw_socket] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_raw_socket]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -10810,7 +11730,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_raw_socket] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_raw_socket]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -10825,7 +11747,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 native..basic_raw_socket] Get the native socket representation.
+[indexterm2 native..basic_raw_socket]
+Get the native socket representation.
+
 
   native_type native();
 
@@ -10839,7 +11763,9 @@
 
 [section:native_type basic_raw_socket::native_type]
 
-[indexterm2 native_type..basic_raw_socket] The native representation of a socket.
+[indexterm2 native_type..basic_raw_socket]
+The native representation of a socket.
+
 
   typedef RawSocketService::native_type native_type;
 
@@ -10861,7 +11787,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_raw_socket] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_raw_socket]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -10883,6 +11811,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -10895,7 +11825,9 @@
 
 [section:open basic_raw_socket::open]
 
-[indexterm2 open..basic_raw_socket] Open the socket using the specified protocol.
+[indexterm2 open..basic_raw_socket]
+Open the socket using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -10912,8 +11844,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -10930,6 +11864,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -10939,6 +11874,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -10951,6 +11887,7 @@
 
 
 
+
 [endsect]
 
 
@@ -10960,8 +11897,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -10981,6 +11920,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -10998,6 +11938,7 @@
 
 
 
+
 [endsect]
 
 
@@ -11006,7 +11947,9 @@
 
 [section:protocol_type basic_raw_socket::protocol_type]
 
-[indexterm2 protocol_type..basic_raw_socket] The protocol type.
+[indexterm2 protocol_type..basic_raw_socket]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -11024,7 +11967,9 @@
 
 [section:receive basic_raw_socket::receive]
 
-[indexterm2 receive..basic_raw_socket] Receive some data on a connected socket.
+[indexterm2 receive..basic_raw_socket]
+Receive some data on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -11050,8 +11995,10 @@
 
 [section:overload1 basic_raw_socket::receive (1 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -11070,10 +12017,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -11083,20 +12032,21 @@
 
 ]
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected raw socket.
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.receive(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -11106,8 +12056,10 @@
 
 [section:overload2 basic_raw_socket::receive (2 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -11129,10 +12081,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -11142,20 +12096,24 @@
 
 ]
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_raw_socket::receive (3 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -11180,16 +12138,19 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Remarks]
       
 The receive operation can only be used with a connected socket. Use the receive\_from function to receive data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
@@ -11201,7 +12162,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_raw_socket] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_raw_socket]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -11222,6 +12185,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -11234,6 +12198,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -11246,7 +12212,9 @@
 
 [section:receive_from basic_raw_socket::receive_from]
 
-[indexterm2 receive_from..basic_raw_socket] Receive raw data with the endpoint of the sender.
+[indexterm2 receive_from..basic_raw_socket]
+Receive raw data with the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -11275,8 +12243,10 @@
 
 [section:overload1 basic_raw_socket::receive_from (1 of 3 overloads)]
 
+
 Receive raw data with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -11298,10 +12268,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -11311,18 +12283,18 @@
 
 ]
 
+
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint sender_endpoint;
    socket.receive_from(
        boost::asio::buffer(data, size), sender_endpoint);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -11332,8 +12304,10 @@
 
 [section:overload2 basic_raw_socket::receive_from (2 of 3 overloads)]
 
+
 Receive raw data with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -11358,10 +12332,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
@@ -11373,14 +12349,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_raw_socket::receive_from (3 of 3 overloads)]
 
+
 Receive raw data with the endpoint of the sender.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive_from(
@@ -11408,12 +12387,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
 
 
+
 [endsect]
 
 
@@ -11425,7 +12406,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_raw_socket] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_raw_socket]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -11446,6 +12429,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -11458,6 +12442,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -11470,7 +12456,9 @@
 
 [section:remote_endpoint basic_raw_socket::remote_endpoint]
 
-[indexterm2 remote_endpoint..basic_raw_socket] Get the remote endpoint of the socket.
+[indexterm2 remote_endpoint..basic_raw_socket]
+Get the remote endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_raw_socket.remote_endpoint.overload1 remote_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_raw_socket.remote_endpoint.overload1 more...]]``
@@ -11485,8 +12473,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint() const;
 
 
@@ -11497,6 +12487,7 @@
       
 An object that represents the remote endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -11506,6 +12497,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -11519,6 +12511,7 @@
 
 
 
+
 [endsect]
 
 
@@ -11528,8 +12521,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint(
       boost::system::error_code & ec) const;
 
@@ -11546,10 +12541,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the remote endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -11568,6 +12565,7 @@
 
 
 
+
 [endsect]
 
 
@@ -11579,7 +12577,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_raw_socket] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_raw_socket]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -11600,6 +12600,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -11612,6 +12613,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -11624,7 +12627,9 @@
 
 [section:send basic_raw_socket::send]
 
-[indexterm2 send..basic_raw_socket] Send some data on a connected socket.
+[indexterm2 send..basic_raw_socket]
+Send some data on a connected socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -11650,8 +12655,10 @@
 
 [section:overload1 basic_raw_socket::send (1 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -11670,10 +12677,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -11683,20 +12692,21 @@
 
 ]
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected raw socket.
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.send(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -11706,8 +12716,10 @@
 
 [section:overload2 basic_raw_socket::send (2 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -11729,10 +12741,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -11742,20 +12756,24 @@
 
 ]
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_raw_socket::send (3 of 3 overloads)]
 
+
 Send some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -11780,16 +12798,19 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Remarks]
       
 The send operation can only be used with a connected socket. Use the send\_to function to send data on an unconnected raw socket.
 
 
 
+
 [endsect]
 
 
@@ -11801,7 +12822,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_raw_socket] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_raw_socket]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -11822,6 +12845,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -11834,6 +12858,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -11850,7 +12876,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_raw_socket] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_raw_socket]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -11871,6 +12899,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -11883,6 +12912,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_raw_socket.hpp]
@@ -11895,7 +12926,9 @@
 
 [section:send_to basic_raw_socket::send_to]
 
-[indexterm2 send_to..basic_raw_socket] Send raw data to the specified endpoint.
+[indexterm2 send_to..basic_raw_socket]
+Send raw data to the specified endpoint.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -11924,8 +12957,10 @@
 
 [section:overload1 basic_raw_socket::send_to (1 of 3 overloads)]
 
+
 Send raw data to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -11947,10 +12982,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -11960,18 +12997,18 @@
 
 ]
 
+
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::ip::udp::endpoint destination(
        boost::asio::ip::address::from_string("1.2.3.4"), 12345);
    socket.send_to(boost::asio::buffer(data, size), destination);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -11981,8 +13018,10 @@
 
 [section:overload2 basic_raw_socket::send_to (2 of 3 overloads)]
 
+
 Send raw data to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -12007,10 +13046,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -12022,14 +13063,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_raw_socket::send_to (3 of 3 overloads)]
 
+
 Send raw data to the specified endpoint.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send_to(
@@ -12057,12 +13101,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
 
 
+
 [endsect]
 
 
@@ -12074,7 +13120,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_raw_socket] The service associated with the I/O object.
+[indexterm2 service..basic_raw_socket]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -12089,7 +13137,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_raw_socket] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_raw_socket]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef RawSocketService service_type;
 
@@ -12107,7 +13157,9 @@
 
 [section:set_option basic_raw_socket::set_option]
 
-[indexterm2 set_option..basic_raw_socket] Set an option on the socket.
+[indexterm2 set_option..basic_raw_socket]
+Set an option on the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.set_option.overload1 set_option]``(
       const SettableSocketOption & option);
@@ -12124,8 +13176,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   void set_option(
       const SettableSocketOption & option);
 
@@ -12142,6 +13196,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -12151,6 +13206,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -12165,6 +13222,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12174,8 +13232,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   boost::system::error_code set_option(
       const SettableSocketOption & option,
       boost::system::error_code & ec);
@@ -12195,6 +13255,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -12214,6 +13276,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12221,7 +13284,9 @@
 
 [section:shutdown basic_raw_socket::shutdown]
 
-[indexterm2 shutdown..basic_raw_socket] Disable sends or receives on the socket.
+[indexterm2 shutdown..basic_raw_socket]
+Disable sends or receives on the socket.
+
 
   void ``[link boost_asio.reference.basic_raw_socket.shutdown.overload1 shutdown]``(
       shutdown_type what);
@@ -12238,8 +13303,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   void shutdown(
       shutdown_type what);
 
@@ -12256,6 +13323,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -12265,6 +13333,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -12278,6 +13347,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12287,8 +13357,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   boost::system::error_code shutdown(
       shutdown_type what,
       boost::system::error_code & ec);
@@ -12308,6 +13380,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -12326,6 +13399,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12337,7 +13411,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_raw_socket] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_raw_socket]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -12375,8 +13451,10 @@
 
 [section:basic_serial_port basic_serial_port]
 
+
 Provides serial port functionality.
 
+
   template<
       typename ``[link boost_asio.reference.SerialPortService SerialPortService]`` = serial_port_service>
   class basic_serial_port :
@@ -12531,14 +13609,15 @@
 
 ]
 
-The basic_serial_port class template provides functionality that is common to all serial ports.
+The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template provides functionality that is common to all serial ports.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -12549,7 +13628,9 @@
 
 [section:assign basic_serial_port::assign]
 
-[indexterm2 assign..basic_serial_port] Assign an existing native serial port to the serial port.
+[indexterm2 assign..basic_serial_port]
+Assign an existing native serial port to the serial port.
+
 
   void ``[link boost_asio.reference.basic_serial_port.assign.overload1 assign]``(
       const native_type & native_serial_port);
@@ -12563,8 +13644,10 @@
 
 [section:overload1 basic_serial_port::assign (1 of 2 overloads)]
 
+
 Assign an existing native serial port to the serial port.
 
+
   void assign(
       const native_type & native_serial_port);
 
@@ -12576,8 +13659,10 @@
 
 [section:overload2 basic_serial_port::assign (2 of 2 overloads)]
 
+
 Assign an existing native serial port to the serial port.
 
+
   boost::system::error_code assign(
       const native_type & native_serial_port,
       boost::system::error_code & ec);
@@ -12592,7 +13677,9 @@
 
 [section:async_read_some basic_serial_port::async_read_some]
 
-[indexterm2 async_read_some..basic_serial_port] Start an asynchronous read.
+[indexterm2 async_read_some..basic_serial_port]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -12619,25 +13706,25 @@
      std::size_t bytes_transferred // Number of bytes read.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The read operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    serial_port.async_read_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -12647,7 +13734,9 @@
 
 [section:async_write_some basic_serial_port::async_write_some]
 
-[indexterm2 async_write_some..basic_serial_port] Start an asynchronous write.
+[indexterm2 async_write_some..basic_serial_port]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -12674,25 +13763,25 @@
      std::size_t bytes_transferred // Number of bytes written.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The write operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    serial_port.async_write_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -12701,25 +13790,31 @@
 
 [section:basic_serial_port basic_serial_port::basic_serial_port]
 
-[indexterm2 basic_serial_port..basic_serial_port] Construct a basic_serial_port without opening it.
+[indexterm2 basic_serial_port..basic_serial_port]
+Construct a [link boost_asio.reference.basic_serial_port `basic_serial_port`] without opening it.
+
 
- ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload1 basic_serial_port]``(
+ explicit ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload1 basic_serial_port]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.basic_serial_port.overload1 more...]]``
 
-Construct and open a basic_serial_port.
 
- ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload2 basic_serial_port]``(
+Construct and open a [link boost_asio.reference.basic_serial_port `basic_serial_port`].
+
+
+ explicit ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload2 basic_serial_port]``(
       boost::asio::io_service & io_service,
       const char * device);
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.basic_serial_port.overload2 more...]]``
 
- ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload3 basic_serial_port]``(
+ explicit ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload3 basic_serial_port]``(
       boost::asio::io_service & io_service,
       const std::string & device);
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.basic_serial_port.overload3 more...]]``
 
-Construct a basic_serial_port on an existing native serial port.
+
+Construct a [link boost_asio.reference.basic_serial_port `basic_serial_port`] on an existing native serial port.
+
 
   ``[link boost_asio.reference.basic_serial_port.basic_serial_port.overload4 basic_serial_port]``(
       boost::asio::io_service & io_service,
@@ -12729,7 +13824,9 @@
 
 [section:overload1 basic_serial_port::basic_serial_port (1 of 4 overloads)]
 
-Construct a basic_serial_port without opening it.
+
+Construct a [link boost_asio.reference.basic_serial_port `basic_serial_port`] without opening it.
+
 
   basic_serial_port(
       boost::asio::io_service & io_service);
@@ -12743,19 +13840,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::basic_serial_port (2 of 4 overloads)]
 
-Construct and open a basic_serial_port.
+
+Construct and open a [link boost_asio.reference.basic_serial_port `basic_serial_port`].
+
 
   basic_serial_port(
       boost::asio::io_service & io_service,
@@ -12770,7 +13870,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
 
 [[device][The platform-specific device name for this serial port. ]]
 
@@ -12778,13 +13878,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_serial_port::basic_serial_port (3 of 4 overloads)]
 
-Construct and open a basic_serial_port.
+
+Construct and open a [link boost_asio.reference.basic_serial_port `basic_serial_port`].
+
 
   basic_serial_port(
       boost::asio::io_service & io_service,
@@ -12799,7 +13902,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
 
 [[device][The platform-specific device name for this serial port. ]]
 
@@ -12807,13 +13910,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_serial_port::basic_serial_port (4 of 4 overloads)]
 
-Construct a basic_serial_port on an existing native serial port.
+
+Construct a [link boost_asio.reference.basic_serial_port `basic_serial_port`] on an existing native serial port.
+
 
   basic_serial_port(
       boost::asio::io_service & io_service,
@@ -12828,12 +13934,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the serial port will use to dispatch handlers for any asynchronous operations performed on the port.]]
 
 [[native_serial_port][A native serial port.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -12845,6 +13952,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12852,7 +13960,9 @@
 
 [section:cancel basic_serial_port::cancel]
 
-[indexterm2 cancel..basic_serial_port] Cancel all asynchronous operations associated with the serial port.
+[indexterm2 cancel..basic_serial_port]
+Cancel all asynchronous operations associated with the serial port.
+
 
   void ``[link boost_asio.reference.basic_serial_port.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.cancel.overload1 more...]]``
@@ -12864,12 +13974,14 @@
 
 [section:overload1 basic_serial_port::cancel (1 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the serial port.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -12883,19 +13995,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::cancel (2 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the serial port.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -12909,6 +14024,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12916,7 +14032,9 @@
 
 [section:close basic_serial_port::close]
 
-[indexterm2 close..basic_serial_port] Close the serial port.
+[indexterm2 close..basic_serial_port]
+Close the serial port.
+
 
   void ``[link boost_asio.reference.basic_serial_port.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.close.overload1 more...]]``
@@ -12928,12 +14046,14 @@
 
 [section:overload1 basic_serial_port::close (1 of 2 overloads)]
 
+
 Close the serial port.
 
+
   void close();
 
 
-This function is used to close the serial port. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the serial port. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -12947,19 +14067,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::close (2 of 2 overloads)]
 
+
 Close the serial port.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the serial port. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the serial port. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -12973,6 +14096,7 @@
 
 
 
+
 [endsect]
 
 
@@ -12984,17 +14108,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_serial_port] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_serial_port]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -13003,7 +14130,9 @@
 
 [section:get_option basic_serial_port::get_option]
 
-[indexterm2 get_option..basic_serial_port] Get an option from the serial port.
+[indexterm2 get_option..basic_serial_port]
+Get an option from the serial port.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
@@ -13021,8 +14150,10 @@
 
 [section:overload1 basic_serial_port::get_option (1 of 2 overloads)]
 
+
 Get an option from the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
   void get_option(
@@ -13041,6 +14172,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -13052,14 +14184,18 @@
 
 
 
+
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::get_option (2 of 2 overloads)]
 
+
 Get an option from the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
   boost::system::error_code get_option(
@@ -13083,6 +14219,8 @@
 
 
 
+
+
 [endsect]
 
 
@@ -13094,7 +14232,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_serial_port] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_serial_port]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -13109,7 +14249,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_serial_port] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_serial_port]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -13131,17 +14273,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_serial_port] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_serial_port]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -13151,7 +14296,9 @@
 
 [section:is_open basic_serial_port::is_open]
 
-[indexterm2 is_open..basic_serial_port] Determine whether the serial port is open.
+[indexterm2 is_open..basic_serial_port]
+Determine whether the serial port is open.
+
 
   bool is_open() const;
 
@@ -13162,25 +14309,31 @@
 
 [section:lowest_layer basic_serial_port::lowest_layer]
 
-[indexterm2 lowest_layer..basic_serial_port] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_serial_port]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_serial_port.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_serial_port.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 basic_serial_port::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_serial_port cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_serial_port `basic_serial_port`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -13189,18 +14342,21 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_serial_port cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_serial_port `basic_serial_port`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -13209,6 +14365,7 @@
 
 
 
+
 [endsect]
 
 
@@ -13217,7 +14374,9 @@
 
 [section:lowest_layer_type basic_serial_port::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..basic_serial_port] A basic_serial_port is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_serial_port]
+A [link boost_asio.reference.basic_serial_port `basic_serial_port`] is always the lowest layer.
+
 
   typedef basic_serial_port< SerialPortService > lowest_layer_type;
 
@@ -13369,14 +14528,15 @@
 
 ]
 
-The basic_serial_port class template provides functionality that is common to all serial ports.
+The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template provides functionality that is common to all serial ports.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -13393,7 +14553,9 @@
 
 [section:native basic_serial_port::native]
 
-[indexterm2 native..basic_serial_port] Get the native serial port representation.
+[indexterm2 native..basic_serial_port]
+Get the native serial port representation.
+
 
   native_type native();
 
@@ -13407,7 +14569,9 @@
 
 [section:native_type basic_serial_port::native_type]
 
-[indexterm2 native_type..basic_serial_port] The native representation of a serial port.
+[indexterm2 native_type..basic_serial_port]
+The native representation of a serial port.
+
 
   typedef SerialPortService::native_type native_type;
 
@@ -13425,7 +14589,9 @@
 
 [section:open basic_serial_port::open]
 
-[indexterm2 open..basic_serial_port] Open the serial port using the specified device name.
+[indexterm2 open..basic_serial_port]
+Open the serial port using the specified device name.
+
 
   void ``[link boost_asio.reference.basic_serial_port.open.overload1 open]``(
       const std::string & device);
@@ -13439,8 +14605,10 @@
 
 [section:overload1 basic_serial_port::open (1 of 2 overloads)]
 
+
 Open the serial port using the specified device name.
 
+
   void open(
       const std::string & device);
 
@@ -13457,6 +14625,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -13468,14 +14637,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::open (2 of 2 overloads)]
 
+
 Open the serial port using the specified device name.
 
+
   boost::system::error_code open(
       const std::string & device,
       boost::system::error_code & ec);
@@ -13497,6 +14669,7 @@
 
 
 
+
 [endsect]
 
 
@@ -13504,7 +14677,9 @@
 
 [section:read_some basic_serial_port::read_some]
 
-[indexterm2 read_some..basic_serial_port] Read some data from the serial port.
+[indexterm2 read_some..basic_serial_port]
+Read some data from the serial port.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -13522,8 +14697,10 @@
 
 [section:overload1 basic_serial_port::read_some (1 of 2 overloads)]
 
+
 Read some data from the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -13542,34 +14719,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    serial_port.read_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -13579,8 +14758,10 @@
 
 [section:overload2 basic_serial_port::read_some (2 of 2 overloads)]
 
+
 Read some data from the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -13602,14 +14783,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -13620,7 +14803,9 @@
 
 [section:send_break basic_serial_port::send_break]
 
-[indexterm2 send_break..basic_serial_port] Send a break sequence to the serial port.
+[indexterm2 send_break..basic_serial_port]
+Send a break sequence to the serial port.
+
 
   void ``[link boost_asio.reference.basic_serial_port.send_break.overload1 send_break]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_serial_port.send_break.overload1 more...]]``
@@ -13632,8 +14817,10 @@
 
 [section:overload1 basic_serial_port::send_break (1 of 2 overloads)]
 
+
 Send a break sequence to the serial port.
 
+
   void send_break();
 
 
@@ -13651,14 +14838,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::send_break (2 of 2 overloads)]
 
+
 Send a break sequence to the serial port.
 
+
   boost::system::error_code send_break(
       boost::system::error_code & ec);
 
@@ -13677,6 +14867,7 @@
 
 
 
+
 [endsect]
 
 
@@ -13688,7 +14879,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_serial_port] The service associated with the I/O object.
+[indexterm2 service..basic_serial_port]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -13703,7 +14896,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_serial_port] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_serial_port]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef SerialPortService service_type;
 
@@ -13721,7 +14916,9 @@
 
 [section:set_option basic_serial_port::set_option]
 
-[indexterm2 set_option..basic_serial_port] Set an option on the serial port.
+[indexterm2 set_option..basic_serial_port]
+Set an option on the serial port.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
@@ -13739,8 +14936,10 @@
 
 [section:overload1 basic_serial_port::set_option (1 of 2 overloads)]
 
+
 Set an option on the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
   void set_option(
@@ -13759,6 +14958,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -13770,14 +14970,18 @@
 
 
 
+
+
 [endsect]
 
 
 
 [section:overload2 basic_serial_port::set_option (2 of 2 overloads)]
 
+
 Set an option on the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
   boost::system::error_code set_option(
@@ -13801,6 +15005,8 @@
 
 
 
+
+
 [endsect]
 
 
@@ -13808,7 +15014,9 @@
 
 [section:write_some basic_serial_port::write_some]
 
-[indexterm2 write_some..basic_serial_port] Write some data to the serial port.
+[indexterm2 write_some..basic_serial_port]
+Write some data to the serial port.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -13826,8 +15034,10 @@
 
 [section:overload1 basic_serial_port::write_some (1 of 2 overloads)]
 
+
 Write some data to the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -13846,34 +15056,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    serial_port.write_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -13883,8 +15095,10 @@
 
 [section:overload2 basic_serial_port::write_some (2 of 2 overloads)]
 
+
 Write some data to the serial port.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -13906,14 +15120,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -13927,8 +15143,10 @@
 
 [section:basic_socket basic_socket]
 
+
 Provides socket functionality.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.SocketService SocketService]``>
@@ -14262,14 +15480,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -14280,7 +15499,9 @@
 
 [section:assign basic_socket::assign]
 
-[indexterm2 assign..basic_socket] Assign an existing native socket to the socket.
+[indexterm2 assign..basic_socket]
+Assign an existing native socket to the socket.
+
 
   void ``[link boost_asio.reference.basic_socket.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -14296,8 +15517,10 @@
 
 [section:overload1 basic_socket::assign (1 of 2 overloads)]
 
+
 Assign an existing native socket to the socket.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_socket);
@@ -14310,8 +15533,10 @@
 
 [section:overload2 basic_socket::assign (2 of 2 overloads)]
 
+
 Assign an existing native socket to the socket.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_socket,
@@ -14327,7 +15552,9 @@
 
 [section:async_connect basic_socket::async_connect]
 
-[indexterm2 async_connect..basic_socket] Start an asynchronous connect.
+[indexterm2 async_connect..basic_socket]
+Start an asynchronous connect.
+
 
   template<
       typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
@@ -14354,10 +15581,11 @@
      const boost::system::error_code& error // Result of operation
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -14382,12 +15610,15 @@
 
 
 
+
 [endsect]
 
 
 [section:at_mark basic_socket::at_mark]
 
-[indexterm2 at_mark..basic_socket] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..basic_socket]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool ``[link boost_asio.reference.basic_socket.at_mark.overload1 at_mark]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.at_mark.overload1 more...]]``
@@ -14399,8 +15630,10 @@
 
 [section:overload1 basic_socket::at_mark (1 of 2 overloads)]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark() const;
 
 
@@ -14411,6 +15644,7 @@
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
+
 [heading Exceptions]
     
 
@@ -14422,14 +15656,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::at_mark (2 of 2 overloads)]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark(
       boost::system::error_code & ec) const;
 
@@ -14446,12 +15683,14 @@
 
 ]
 
+
 [heading Return Value]
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
 
 
+
 [endsect]
 
 
@@ -14459,7 +15698,9 @@
 
 [section:available basic_socket::available]
 
-[indexterm2 available..basic_socket] Determine the number of bytes available for reading.
+[indexterm2 available..basic_socket]
+Determine the number of bytes available for reading.
+
 
   std::size_t ``[link boost_asio.reference.basic_socket.available.overload1 available]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.available.overload1 more...]]``
@@ -14471,8 +15712,10 @@
 
 [section:overload1 basic_socket::available (1 of 2 overloads)]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available() const;
 
 
@@ -14483,6 +15726,7 @@
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
+
 [heading Exceptions]
     
 
@@ -14494,14 +15738,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::available (2 of 2 overloads)]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available(
       boost::system::error_code & ec) const;
 
@@ -14518,12 +15765,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
 
 
+
 [endsect]
 
 
@@ -14531,27 +15780,35 @@
 
 [section:basic_socket basic_socket::basic_socket]
 
-[indexterm2 basic_socket..basic_socket] Construct a basic_socket without opening it.
+[indexterm2 basic_socket..basic_socket]
+Construct a [link boost_asio.reference.basic_socket `basic_socket`] without opening it.
 
- ``[link boost_asio.reference.basic_socket.basic_socket.overload1 basic_socket]``(
+
+ explicit ``[link boost_asio.reference.basic_socket.basic_socket.overload1 basic_socket]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.basic_socket.overload1 more...]]``
 
-Construct and open a basic_socket.
+
+Construct and open a [link boost_asio.reference.basic_socket `basic_socket`].
+
 
   ``[link boost_asio.reference.basic_socket.basic_socket.overload2 basic_socket]``(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.basic_socket.overload2 more...]]``
 
-Construct a basic_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_socket `basic_socket`], opening it and binding it to the given local endpoint.
+
 
   ``[link boost_asio.reference.basic_socket.basic_socket.overload3 basic_socket]``(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.basic_socket.overload3 more...]]``
 
-Construct a basic_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_socket `basic_socket`] on an existing native socket.
+
 
   ``[link boost_asio.reference.basic_socket.basic_socket.overload4 basic_socket]``(
       boost::asio::io_service & io_service,
@@ -14562,7 +15819,9 @@
 
 [section:overload1 basic_socket::basic_socket (1 of 4 overloads)]
 
-Construct a basic_socket without opening it.
+
+Construct a [link boost_asio.reference.basic_socket `basic_socket`] without opening it.
+
 
   basic_socket(
       boost::asio::io_service & io_service);
@@ -14576,19 +15835,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::basic_socket (2 of 4 overloads)]
 
-Construct and open a basic_socket.
+
+Construct and open a [link boost_asio.reference.basic_socket `basic_socket`].
+
 
   basic_socket(
       boost::asio::io_service & io_service,
@@ -14603,12 +15865,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -14620,13 +15883,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_socket::basic_socket (3 of 4 overloads)]
 
-Construct a basic_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_socket `basic_socket`], opening it and binding it to the given local endpoint.
+
 
   basic_socket(
       boost::asio::io_service & io_service,
@@ -14641,12 +15907,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[endpoint][An endpoint on the local machine to which the socket will be bound.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -14658,13 +15925,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_socket::basic_socket (4 of 4 overloads)]
 
-Construct a basic_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_socket `basic_socket`] on an existing native socket.
+
 
   basic_socket(
       boost::asio::io_service & io_service,
@@ -14680,7 +15950,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
@@ -14688,6 +15958,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -14699,6 +15970,7 @@
 
 
 
+
 [endsect]
 
 
@@ -14706,7 +15978,9 @@
 
 [section:bind basic_socket::bind]
 
-[indexterm2 bind..basic_socket] Bind the socket to the given local endpoint.
+[indexterm2 bind..basic_socket]
+Bind the socket to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_socket.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -14720,8 +15994,10 @@
 
 [section:overload1 basic_socket::bind (1 of 2 overloads)]
 
+
 Bind the socket to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -14738,6 +16014,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -14747,6 +16024,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -14761,14 +16039,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::bind (2 of 2 overloads)]
 
+
 Bind the socket to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -14788,6 +16069,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -14807,6 +16089,7 @@
 
 
 
+
 [endsect]
 
 
@@ -14818,7 +16101,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_socket] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_socket]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -14839,6 +16124,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -14851,6 +16137,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -14867,7 +16155,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_socket] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_socket]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -14890,6 +16180,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -14902,7 +16194,9 @@
 
 [section:cancel basic_socket::cancel]
 
-[indexterm2 cancel..basic_socket] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..basic_socket]
+Cancel all asynchronous operations associated with the socket.
+
 
   void ``[link boost_asio.reference.basic_socket.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.cancel.overload1 more...]]``
@@ -14914,12 +16208,14 @@
 
 [section:overload1 basic_socket::cancel (1 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -14931,12 +16227,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -14944,6 +16243,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -14955,13 +16255,15 @@
 
 [section:overload2 basic_socket::cancel (2 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -14973,12 +16275,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -14986,6 +16291,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -14998,7 +16304,9 @@
 
 [section:close basic_socket::close]
 
-[indexterm2 close..basic_socket] Close the socket.
+[indexterm2 close..basic_socket]
+Close the socket.
+
 
   void ``[link boost_asio.reference.basic_socket.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.close.overload1 more...]]``
@@ -15010,12 +16318,14 @@
 
 [section:overload1 basic_socket::close (1 of 2 overloads)]
 
+
 Close the socket.
 
+
   void close();
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -15027,9 +16337,11 @@
 
 ]
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -15039,13 +16351,15 @@
 
 [section:overload2 basic_socket::close (2 of 2 overloads)]
 
+
 Close the socket.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -15057,6 +16371,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -15073,9 +16388,11 @@
 
 
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -15086,7 +16403,9 @@
 
 [section:connect basic_socket::connect]
 
-[indexterm2 connect..basic_socket] Connect the socket to the specified endpoint.
+[indexterm2 connect..basic_socket]
+Connect the socket to the specified endpoint.
+
 
   void ``[link boost_asio.reference.basic_socket.connect.overload1 connect]``(
       const endpoint_type & peer_endpoint);
@@ -15100,8 +16419,10 @@
 
 [section:overload1 basic_socket::connect (1 of 2 overloads)]
 
+
 Connect the socket to the specified endpoint.
 
+
   void connect(
       const endpoint_type & peer_endpoint);
 
@@ -15120,6 +16441,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -15129,6 +16451,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -15143,14 +16466,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::connect (2 of 2 overloads)]
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code connect(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -15172,6 +16498,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -15191,6 +16518,7 @@
 
 
 
+
 [endsect]
 
 
@@ -15202,7 +16530,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_socket] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_socket]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -15223,6 +16553,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -15235,6 +16566,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -15251,7 +16584,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_socket] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_socket]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -15272,6 +16607,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -15284,6 +16620,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -15300,13 +16638,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_socket] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_socket]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -15321,6 +16661,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -15333,6 +16674,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -15346,7 +16689,9 @@
 
 [section:endpoint_type basic_socket::endpoint_type]
 
-[indexterm2 endpoint_type..basic_socket] The endpoint type.
+[indexterm2 endpoint_type..basic_socket]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -15368,17 +16713,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_socket] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_socket]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -15387,7 +16735,9 @@
 
 [section:get_option basic_socket::get_option]
 
-[indexterm2 get_option..basic_socket] Get an option from the socket.
+[indexterm2 get_option..basic_socket]
+Get an option from the socket.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -15405,8 +16755,10 @@
 
 [section:overload1 basic_socket::get_option (1 of 2 overloads)]
 
+
 Get an option from the socket.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
   void get_option(
@@ -15425,6 +16777,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -15434,6 +16787,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -15449,14 +16804,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::get_option (2 of 2 overloads)]
 
+
 Get an option from the socket.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
   boost::system::error_code get_option(
@@ -15478,6 +16836,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -15498,6 +16858,7 @@
 
 
 
+
 [endsect]
 
 
@@ -15509,7 +16870,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_socket] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_socket]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -15524,7 +16887,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_socket] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_socket]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -15542,7 +16907,9 @@
 
 [section:io_control basic_socket::io_control]
 
-[indexterm2 io_control..basic_socket] Perform an IO control command on the socket.
+[indexterm2 io_control..basic_socket]
+Perform an IO control command on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -15560,8 +16927,10 @@
 
 [section:overload1 basic_socket::io_control (1 of 2 overloads)]
 
+
 Perform an IO control command on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
   void io_control(
@@ -15580,6 +16949,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -15589,6 +16959,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -15604,14 +16976,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::io_control (2 of 2 overloads)]
 
+
 Perform an IO control command on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
   boost::system::error_code io_control(
@@ -15633,6 +17008,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -15653,6 +17030,7 @@
 
 
 
+
 [endsect]
 
 
@@ -15664,17 +17042,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_socket] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_socket]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -15684,7 +17065,9 @@
 
 [section:is_open basic_socket::is_open]
 
-[indexterm2 is_open..basic_socket] Determine whether the socket is open.
+[indexterm2 is_open..basic_socket]
+Determine whether the socket is open.
+
 
   bool is_open() const;
 
@@ -15699,7 +17082,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_socket] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_socket]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -15720,6 +17105,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -15732,6 +17118,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -15748,7 +17136,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_socket] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_socket]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -15769,6 +17159,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -15782,6 +17173,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -15794,7 +17187,9 @@
 
 [section:local_endpoint basic_socket::local_endpoint]
 
-[indexterm2 local_endpoint..basic_socket] Get the local endpoint of the socket.
+[indexterm2 local_endpoint..basic_socket]
+Get the local endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_socket.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.local_endpoint.overload1 more...]]``
@@ -15806,8 +17201,10 @@
 
 [section:overload1 basic_socket::local_endpoint (1 of 2 overloads)]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -15818,6 +17215,7 @@
       
 An object that represents the local endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -15827,6 +17225,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -15840,14 +17239,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::local_endpoint (2 of 2 overloads)]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -15864,10 +17266,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -15886,6 +17290,7 @@
 
 
 
+
 [endsect]
 
 
@@ -15893,25 +17298,31 @@
 
 [section:lowest_layer basic_socket::lowest_layer]
 
-[indexterm2 lowest_layer..basic_socket] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_socket]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_socket.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_socket.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 basic_socket::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -15920,18 +17331,21 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -15940,6 +17354,7 @@
 
 
 
+
 [endsect]
 
 
@@ -15948,7 +17363,9 @@
 
 [section:lowest_layer_type basic_socket::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..basic_socket] A basic_socket is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_socket]
+A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest layer.
+
 
   typedef basic_socket< Protocol, SocketService > lowest_layer_type;
 
@@ -16278,14 +17695,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -16305,7 +17723,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_socket] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_socket]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -16320,7 +17740,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_socket] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_socket]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -16335,7 +17757,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_socket] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_socket]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -16357,7 +17781,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_socket] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_socket]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -16372,7 +17798,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_socket] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_socket]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -16384,7 +17812,9 @@
 
 [section:native basic_socket::native]
 
-[indexterm2 native..basic_socket] Get the native socket representation.
+[indexterm2 native..basic_socket]
+Get the native socket representation.
+
 
   native_type native();
 
@@ -16398,7 +17828,9 @@
 
 [section:native_type basic_socket::native_type]
 
-[indexterm2 native_type..basic_socket] The native representation of a socket.
+[indexterm2 native_type..basic_socket]
+The native representation of a socket.
+
 
   typedef SocketService::native_type native_type;
 
@@ -16420,7 +17852,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_socket] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_socket]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -16442,6 +17876,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16454,7 +17890,9 @@
 
 [section:open basic_socket::open]
 
-[indexterm2 open..basic_socket] Open the socket using the specified protocol.
+[indexterm2 open..basic_socket]
+Open the socket using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_socket.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -16468,8 +17906,10 @@
 
 [section:overload1 basic_socket::open (1 of 2 overloads)]
 
+
 Open the socket using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -16486,6 +17926,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -16495,6 +17936,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -16507,14 +17949,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::open (2 of 2 overloads)]
 
+
 Open the socket using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -16534,6 +17979,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -16551,6 +17997,7 @@
 
 
 
+
 [endsect]
 
 
@@ -16559,7 +18006,9 @@
 
 [section:protocol_type basic_socket::protocol_type]
 
-[indexterm2 protocol_type..basic_socket] The protocol type.
+[indexterm2 protocol_type..basic_socket]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -16581,7 +18030,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_socket] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_socket]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -16602,6 +18053,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -16614,6 +18066,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16630,7 +18084,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_socket] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_socket]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -16651,6 +18107,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -16663,6 +18120,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16675,7 +18134,9 @@
 
 [section:remote_endpoint basic_socket::remote_endpoint]
 
-[indexterm2 remote_endpoint..basic_socket] Get the remote endpoint of the socket.
+[indexterm2 remote_endpoint..basic_socket]
+Get the remote endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_socket.remote_endpoint.overload1 remote_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket.remote_endpoint.overload1 more...]]``
@@ -16687,8 +18148,10 @@
 
 [section:overload1 basic_socket::remote_endpoint (1 of 2 overloads)]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint() const;
 
 
@@ -16699,6 +18162,7 @@
       
 An object that represents the remote endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -16708,6 +18172,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -16721,14 +18186,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::remote_endpoint (2 of 2 overloads)]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint(
       boost::system::error_code & ec) const;
 
@@ -16745,10 +18213,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the remote endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -16767,6 +18237,7 @@
 
 
 
+
 [endsect]
 
 
@@ -16778,7 +18249,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_socket] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_socket]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -16799,6 +18272,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -16811,6 +18285,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16827,7 +18303,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_socket] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_socket]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -16848,6 +18326,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -16860,6 +18339,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16876,7 +18357,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_socket] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_socket]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -16897,6 +18380,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -16909,6 +18393,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket.hpp]
@@ -16925,7 +18411,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_socket] The service associated with the I/O object.
+[indexterm2 service..basic_socket]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -16940,7 +18428,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_socket] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_socket]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef SocketService service_type;
 
@@ -16958,7 +18448,9 @@
 
 [section:set_option basic_socket::set_option]
 
-[indexterm2 set_option..basic_socket] Set an option on the socket.
+[indexterm2 set_option..basic_socket]
+Set an option on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -16976,8 +18468,10 @@
 
 [section:overload1 basic_socket::set_option (1 of 2 overloads)]
 
+
 Set an option on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
   void set_option(
@@ -16996,6 +18490,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -17005,6 +18500,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -17019,14 +18516,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::set_option (2 of 2 overloads)]
 
+
 Set an option on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
   boost::system::error_code set_option(
@@ -17048,6 +18548,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -17067,6 +18569,7 @@
 
 
 
+
 [endsect]
 
 
@@ -17074,7 +18577,9 @@
 
 [section:shutdown basic_socket::shutdown]
 
-[indexterm2 shutdown..basic_socket] Disable sends or receives on the socket.
+[indexterm2 shutdown..basic_socket]
+Disable sends or receives on the socket.
+
 
   void ``[link boost_asio.reference.basic_socket.shutdown.overload1 shutdown]``(
       shutdown_type what);
@@ -17088,8 +18593,10 @@
 
 [section:overload1 basic_socket::shutdown (1 of 2 overloads)]
 
+
 Disable sends or receives on the socket.
 
+
   void shutdown(
       shutdown_type what);
 
@@ -17106,6 +18613,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -17115,6 +18623,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -17128,14 +18637,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket::shutdown (2 of 2 overloads)]
 
+
 Disable sends or receives on the socket.
 
+
   boost::system::error_code shutdown(
       shutdown_type what,
       boost::system::error_code & ec);
@@ -17155,6 +18667,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -17173,6 +18686,7 @@
 
 
 
+
 [endsect]
 
 
@@ -17184,7 +18698,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_socket] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_socket]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -17220,7 +18736,9 @@
 
 [section:_basic_socket basic_socket::~basic_socket]
 
-[indexterm2 ~basic_socket..basic_socket] Protected destructor to prevent deletion through this type.
+[indexterm2 ~basic_socket..basic_socket]
+Protected destructor to prevent deletion through this type.
+
 
   ~basic_socket();
 
@@ -17234,8 +18752,10 @@
 
 [section:basic_socket_acceptor basic_socket_acceptor]
 
+
 Provides the ability to accept new connections.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.SocketAcceptorService SocketAcceptorService]`` = socket_acceptor_service<Protocol>>
@@ -17526,14 +19046,15 @@
 
 ]
 
-The basic_socket_acceptor class template is used for accepting new socket connections.
+The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Example]
   
@@ -17550,6 +19071,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -17558,7 +19080,9 @@
 
 [section:accept basic_socket_acceptor::accept]
 
-[indexterm2 accept..basic_socket_acceptor] Accept a new connection.
+[indexterm2 accept..basic_socket_acceptor]
+Accept a new connection.
+
 
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
@@ -17573,8 +19097,10 @@
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.accept.overload2 more...]]``
 
+
 Accept a new connection and obtain the endpoint of the peer.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
   void ``[link boost_asio.reference.basic_socket_acceptor.accept.overload3 accept]``(
@@ -17593,8 +19119,10 @@
 
 [section:overload1 basic_socket_acceptor::accept (1 of 4 overloads)]
 
+
 Accept a new connection.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
   void accept(
@@ -17613,6 +19141,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -17622,6 +19151,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -17636,14 +19166,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::accept (2 of 4 overloads)]
 
+
 Accept a new connection.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
   boost::system::error_code accept(
@@ -17665,6 +19198,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -17684,14 +19218,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_socket_acceptor::accept (3 of 4 overloads)]
 
+
 Accept a new connection and obtain the endpoint of the peer.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
   void accept(
@@ -17713,6 +19250,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -17722,6 +19260,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -17737,14 +19276,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_socket_acceptor::accept (4 of 4 overloads)]
 
+
 Accept a new connection and obtain the endpoint of the peer.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
   boost::system::error_code accept(
@@ -17769,6 +19311,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -17789,6 +19332,7 @@
 
 
 
+
 [endsect]
 
 
@@ -17796,7 +19340,9 @@
 
 [section:assign basic_socket_acceptor::assign]
 
-[indexterm2 assign..basic_socket_acceptor] Assigns an existing native acceptor to the acceptor.
+[indexterm2 assign..basic_socket_acceptor]
+Assigns an existing native acceptor to the acceptor.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -17812,8 +19358,10 @@
 
 [section:overload1 basic_socket_acceptor::assign (1 of 2 overloads)]
 
+
 Assigns an existing native acceptor to the acceptor.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_acceptor);
@@ -17826,8 +19374,10 @@
 
 [section:overload2 basic_socket_acceptor::assign (2 of 2 overloads)]
 
+
 Assigns an existing native acceptor to the acceptor.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_acceptor,
@@ -17842,7 +19392,9 @@
 
 [section:async_accept basic_socket_acceptor::async_accept]
 
-[indexterm2 async_accept..basic_socket_acceptor] Start an asynchronous accept.
+[indexterm2 async_accept..basic_socket_acceptor]
+Start an asynchronous accept.
+
 
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``,
@@ -17864,8 +19416,10 @@
 
 [section:overload1 basic_socket_acceptor::async_accept (1 of 2 overloads)]
 
+
 Start an asynchronous accept.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``,
       typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
@@ -17890,10 +19444,11 @@
      const boost::system::error_code& error // Result of operation.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -17918,14 +19473,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::async_accept (2 of 2 overloads)]
 
+
 Start an asynchronous accept.
 
+
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``,
       typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
@@ -17953,12 +19511,13 @@
      const boost::system::error_code& error // Result of operation.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post(). ]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
@@ -17966,28 +19525,36 @@
 
 [section:basic_socket_acceptor basic_socket_acceptor::basic_socket_acceptor]
 
-[indexterm2 basic_socket_acceptor..basic_socket_acceptor] Construct an acceptor without opening it.
+[indexterm2 basic_socket_acceptor..basic_socket_acceptor]
+Construct an acceptor without opening it.
+
 
- ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload1 basic_socket_acceptor]``(
+ explicit ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload1 basic_socket_acceptor]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload1 more...]]``
 
+
 Construct an open acceptor.
 
+
   ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload2 basic_socket_acceptor]``(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload2 more...]]``
 
+
 Construct an acceptor opened on the given endpoint.
 
+
   ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload3 basic_socket_acceptor]``(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint,
       bool reuse_addr = true);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload3 more...]]``
 
-Construct a basic_socket_acceptor on an existing native acceptor.
+
+Construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] on an existing native acceptor.
+
 
   ``[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor.overload4 basic_socket_acceptor]``(
       boost::asio::io_service & io_service,
@@ -17998,13 +19565,15 @@
 
 [section:overload1 basic_socket_acceptor::basic_socket_acceptor (1 of 4 overloads)]
 
+
 Construct an acceptor without opening it.
 
+
   basic_socket_acceptor(
       boost::asio::io_service & io_service);
 
 
-This constructor creates an acceptor without opening it to listen for new connections. The open() function must be called before the acceptor can accept new socket connections.
+This constructor creates an acceptor without opening it to listen for new connections. The `open()` function must be called before the acceptor can accept new socket connections.
 
 
 [heading Parameters]
@@ -18012,20 +19581,23 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::basic_socket_acceptor (2 of 4 overloads)]
 
+
 Construct an open acceptor.
 
+
   basic_socket_acceptor(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
@@ -18039,12 +19611,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -18056,14 +19629,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_socket_acceptor::basic_socket_acceptor (3 of 4 overloads)]
 
+
 Construct an acceptor opened on the given endpoint.
 
+
   basic_socket_acceptor(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint,
@@ -18078,14 +19654,15 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
 
 [[endpoint][An endpoint on the local machine on which the acceptor will listen for new connections.]]
 
-[[reuse_addr][Whether the constructor should set the socket option socket\_base::reuse\_address.]]
+[[reuse_addr][Whether the constructor should set the socket option `socket_base::reuse_address`.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -18095,6 +19672,7 @@
 
 ]
 
+
 [heading Remarks]
       
 This constructor is equivalent to the following code:
@@ -18111,13 +19689,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_socket_acceptor::basic_socket_acceptor (4 of 4 overloads)]
 
-Construct a basic_socket_acceptor on an existing native acceptor.
+
+Construct a [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] on an existing native acceptor.
+
 
   basic_socket_acceptor(
       boost::asio::io_service & io_service,
@@ -18133,7 +19714,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the acceptor will use to dispatch handlers for any asynchronous operations performed on the acceptor.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
@@ -18141,6 +19722,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -18152,6 +19734,7 @@
 
 
 
+
 [endsect]
 
 
@@ -18159,7 +19742,9 @@
 
 [section:bind basic_socket_acceptor::bind]
 
-[indexterm2 bind..basic_socket_acceptor] Bind the acceptor to the given local endpoint.
+[indexterm2 bind..basic_socket_acceptor]
+Bind the acceptor to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -18173,8 +19758,10 @@
 
 [section:overload1 basic_socket_acceptor::bind (1 of 2 overloads)]
 
+
 Bind the acceptor to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -18191,6 +19778,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -18200,6 +19788,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -18213,14 +19802,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::bind (2 of 2 overloads)]
 
+
 Bind the acceptor to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -18240,6 +19832,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -18258,6 +19851,7 @@
 
 
 
+
 [endsect]
 
 
@@ -18269,7 +19863,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_socket_acceptor] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_socket_acceptor]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -18290,6 +19886,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -18302,6 +19899,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18318,7 +19917,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_socket_acceptor] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_socket_acceptor]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -18341,6 +19942,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18353,7 +19956,9 @@
 
 [section:cancel basic_socket_acceptor::cancel]
 
-[indexterm2 cancel..basic_socket_acceptor] Cancel all asynchronous operations associated with the acceptor.
+[indexterm2 cancel..basic_socket_acceptor]
+Cancel all asynchronous operations associated with the acceptor.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.cancel.overload1 more...]]``
@@ -18365,12 +19970,14 @@
 
 [section:overload1 basic_socket_acceptor::cancel (1 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the acceptor.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -18384,19 +19991,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::cancel (2 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the acceptor.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -18410,6 +20020,7 @@
 
 
 
+
 [endsect]
 
 
@@ -18417,7 +20028,9 @@
 
 [section:close basic_socket_acceptor::close]
 
-[indexterm2 close..basic_socket_acceptor] Close the acceptor.
+[indexterm2 close..basic_socket_acceptor]
+Close the acceptor.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.close.overload1 more...]]``
@@ -18429,14 +20042,16 @@
 
 [section:overload1 basic_socket_acceptor::close (1 of 2 overloads)]
 
+
 Close the acceptor.
 
+
   void close();
 
 
 This function is used to close the acceptor. Any asynchronous accept operations will be cancelled immediately.
 
-A subsequent call to open() is required before the acceptor can again be used to again perform socket accept operations.
+A subsequent call to `open()` is required before the acceptor can again be used to again perform socket accept operations.
 
 
 [heading Exceptions]
@@ -18450,21 +20065,24 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::close (2 of 2 overloads)]
 
+
 Close the acceptor.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
 This function is used to close the acceptor. Any asynchronous accept operations will be cancelled immediately.
 
-A subsequent call to open() is required before the acceptor can again be used to again perform socket accept operations.
+A subsequent call to `open()` is required before the acceptor can again be used to again perform socket accept operations.
 
 
 [heading Parameters]
@@ -18476,6 +20094,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -18494,6 +20113,7 @@
 
 
 
+
 [endsect]
 
 
@@ -18505,7 +20125,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_socket_acceptor] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_socket_acceptor]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -18526,6 +20148,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -18538,6 +20161,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18554,7 +20179,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_socket_acceptor] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_socket_acceptor]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -18575,6 +20202,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -18587,6 +20215,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18603,13 +20233,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_socket_acceptor] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_socket_acceptor]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -18624,6 +20256,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -18636,6 +20269,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18649,7 +20284,9 @@
 
 [section:endpoint_type basic_socket_acceptor::endpoint_type]
 
-[indexterm2 endpoint_type..basic_socket_acceptor] The endpoint type.
+[indexterm2 endpoint_type..basic_socket_acceptor]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -18671,17 +20308,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_socket_acceptor] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_socket_acceptor]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -18690,7 +20330,9 @@
 
 [section:get_option basic_socket_acceptor::get_option]
 
-[indexterm2 get_option..basic_socket_acceptor] Get an option from the acceptor.
+[indexterm2 get_option..basic_socket_acceptor]
+Get an option from the acceptor.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -18708,8 +20350,10 @@
 
 [section:overload1 basic_socket_acceptor::get_option (1 of 2 overloads)]
 
+
 Get an option from the acceptor.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
   void get_option(
@@ -18728,6 +20372,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -18737,6 +20382,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_REUSEADDR option:
@@ -18752,14 +20399,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::get_option (2 of 2 overloads)]
 
+
 Get an option from the acceptor.
 
+
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
   boost::system::error_code get_option(
@@ -18781,6 +20431,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_REUSEADDR option:
@@ -18801,6 +20453,7 @@
 
 
 
+
 [endsect]
 
 
@@ -18812,7 +20465,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_socket_acceptor] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_socket_acceptor]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -18827,7 +20482,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_socket_acceptor] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_socket_acceptor]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -18849,17 +20506,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_socket_acceptor] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_socket_acceptor]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -18869,7 +20529,9 @@
 
 [section:is_open basic_socket_acceptor::is_open]
 
-[indexterm2 is_open..basic_socket_acceptor] Determine whether the acceptor is open.
+[indexterm2 is_open..basic_socket_acceptor]
+Determine whether the acceptor is open.
+
 
   bool is_open() const;
 
@@ -18884,7 +20546,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_socket_acceptor] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_socket_acceptor]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -18905,6 +20569,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -18917,6 +20582,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18933,7 +20600,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_socket_acceptor] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_socket_acceptor]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -18954,6 +20623,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -18967,6 +20637,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -18979,7 +20651,9 @@
 
 [section:listen basic_socket_acceptor::listen]
 
-[indexterm2 listen..basic_socket_acceptor] Place the acceptor into the state where it will listen for new connections.
+[indexterm2 listen..basic_socket_acceptor]
+Place the acceptor into the state where it will listen for new connections.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.listen.overload1 listen]``(
       int backlog = socket_base::max_connections);
@@ -18993,8 +20667,10 @@
 
 [section:overload1 basic_socket_acceptor::listen (1 of 2 overloads)]
 
+
 Place the acceptor into the state where it will listen for new connections.
 
+
   void listen(
       int backlog = socket_base::max_connections);
 
@@ -19011,6 +20687,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -19022,14 +20699,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::listen (2 of 2 overloads)]
 
+
 Place the acceptor into the state where it will listen for new connections.
 
+
   boost::system::error_code listen(
       int backlog,
       boost::system::error_code & ec);
@@ -19049,6 +20729,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -19067,6 +20748,7 @@
 
 
 
+
 [endsect]
 
 
@@ -19074,7 +20756,9 @@
 
 [section:local_endpoint basic_socket_acceptor::local_endpoint]
 
-[indexterm2 local_endpoint..basic_socket_acceptor] Get the local endpoint of the acceptor.
+[indexterm2 local_endpoint..basic_socket_acceptor]
+Get the local endpoint of the acceptor.
+
 
   endpoint_type ``[link boost_asio.reference.basic_socket_acceptor.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_acceptor.local_endpoint.overload1 more...]]``
@@ -19086,8 +20770,10 @@
 
 [section:overload1 basic_socket_acceptor::local_endpoint (1 of 2 overloads)]
 
+
 Get the local endpoint of the acceptor.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -19098,6 +20784,7 @@
       
 An object that represents the local endpoint of the acceptor.
 
+
 [heading Exceptions]
     
 
@@ -19107,6 +20794,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -19120,14 +20808,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::local_endpoint (2 of 2 overloads)]
 
+
 Get the local endpoint of the acceptor.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -19144,10 +20835,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the acceptor. Returns a default-constructed endpoint object if an error occurred and the error handler did not throw an exception.
 
+
 [heading Example]
   
 
@@ -19166,6 +20859,7 @@
 
 
 
+
 [endsect]
 
 
@@ -19177,7 +20871,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_socket_acceptor] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_socket_acceptor]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -19192,7 +20888,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_socket_acceptor] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_socket_acceptor]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -19207,7 +20905,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_socket_acceptor] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_socket_acceptor]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -19229,7 +20929,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_socket_acceptor] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_socket_acceptor]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -19244,7 +20946,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_socket_acceptor] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_socket_acceptor]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -19256,7 +20960,9 @@
 
 [section:native basic_socket_acceptor::native]
 
-[indexterm2 native..basic_socket_acceptor] Get the native acceptor representation.
+[indexterm2 native..basic_socket_acceptor]
+Get the native acceptor representation.
+
 
   native_type native();
 
@@ -19270,7 +20976,9 @@
 
 [section:native_type basic_socket_acceptor::native_type]
 
-[indexterm2 native_type..basic_socket_acceptor] The native representation of an acceptor.
+[indexterm2 native_type..basic_socket_acceptor]
+The native representation of an acceptor.
+
 
   typedef SocketAcceptorService::native_type native_type;
 
@@ -19292,7 +21000,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_socket_acceptor] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_socket_acceptor]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -19314,6 +21024,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19326,7 +21038,9 @@
 
 [section:open basic_socket_acceptor::open]
 
-[indexterm2 open..basic_socket_acceptor] Open the acceptor using the specified protocol.
+[indexterm2 open..basic_socket_acceptor]
+Open the acceptor using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_socket_acceptor.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -19340,8 +21054,10 @@
 
 [section:overload1 basic_socket_acceptor::open (1 of 2 overloads)]
 
+
 Open the acceptor using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -19358,6 +21074,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -19367,6 +21084,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -19379,14 +21097,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::open (2 of 2 overloads)]
 
+
 Open the acceptor using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -19406,6 +21127,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -19423,6 +21145,7 @@
 
 
 
+
 [endsect]
 
 
@@ -19431,7 +21154,9 @@
 
 [section:protocol_type basic_socket_acceptor::protocol_type]
 
-[indexterm2 protocol_type..basic_socket_acceptor] The protocol type.
+[indexterm2 protocol_type..basic_socket_acceptor]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -19453,7 +21178,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_socket_acceptor] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_socket_acceptor]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -19474,6 +21201,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -19486,6 +21214,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19502,7 +21232,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_socket_acceptor] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_socket_acceptor]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -19523,6 +21255,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -19535,6 +21268,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19551,7 +21286,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_socket_acceptor] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_socket_acceptor]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -19572,6 +21309,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -19584,6 +21322,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19600,7 +21340,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_socket_acceptor] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_socket_acceptor]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -19621,6 +21363,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -19633,6 +21376,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19649,7 +21394,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_socket_acceptor] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_socket_acceptor]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -19670,6 +21417,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -19682,6 +21430,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_acceptor.hpp]
@@ -19698,7 +21448,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_socket_acceptor] The service associated with the I/O object.
+[indexterm2 service..basic_socket_acceptor]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -19713,7 +21465,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_socket_acceptor] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_socket_acceptor]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef SocketAcceptorService service_type;
 
@@ -19731,7 +21485,9 @@
 
 [section:set_option basic_socket_acceptor::set_option]
 
-[indexterm2 set_option..basic_socket_acceptor] Set an option on the acceptor.
+[indexterm2 set_option..basic_socket_acceptor]
+Set an option on the acceptor.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -19749,8 +21505,10 @@
 
 [section:overload1 basic_socket_acceptor::set_option (1 of 2 overloads)]
 
+
 Set an option on the acceptor.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
   void set_option(
@@ -19769,6 +21527,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -19778,6 +21537,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the SOL\_SOCKET/SO\_REUSEADDR option:
@@ -19792,14 +21553,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_acceptor::set_option (2 of 2 overloads)]
 
+
 Set an option on the acceptor.
 
+
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
   boost::system::error_code set_option(
@@ -19821,6 +21585,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the SOL\_SOCKET/SO\_REUSEADDR option:
@@ -19840,6 +21606,7 @@
 
 
 
+
 [endsect]
 
 
@@ -19851,7 +21618,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_socket_acceptor] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_socket_acceptor]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -19889,8 +21658,10 @@
 
 [section:basic_socket_iostream basic_socket_iostream]
 
+
 Iostream interface for a socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.StreamSocketService StreamSocketService]`` = stream_socket_service<Protocol>>
@@ -19933,18 +21704,22 @@
 
 [section:basic_socket_iostream basic_socket_iostream::basic_socket_iostream]
 
-[indexterm2 basic_socket_iostream..basic_socket_iostream] Construct a basic_socket_iostream without establishing a connection.
+[indexterm2 basic_socket_iostream..basic_socket_iostream]
+Construct a [link boost_asio.reference.basic_socket_iostream `basic_socket_iostream`] without establishing a connection.
+
 
   ``[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream.overload1 basic_socket_iostream]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_iostream.basic_socket_iostream.overload1 more...]]``
 
+
 Establish a connection to an endpoint corresponding to a resolver query.
 
+
   template<
       typename T1,
       ... ,
       typename TN>
- ``[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream.overload2 basic_socket_iostream]``(
+ explicit ``[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream.overload2 basic_socket_iostream]``(
       T1 t1,
       ... ,
       TN tn);
@@ -19953,7 +21728,9 @@
 
 [section:overload1 basic_socket_iostream::basic_socket_iostream (1 of 2 overloads)]
 
-Construct a basic_socket_iostream without establishing a connection.
+
+Construct a [link boost_asio.reference.basic_socket_iostream `basic_socket_iostream`] without establishing a connection.
+
 
   basic_socket_iostream();
 
@@ -19965,8 +21742,10 @@
 
 [section:overload2 basic_socket_iostream::basic_socket_iostream (2 of 2 overloads)]
 
+
 Establish a connection to an endpoint corresponding to a resolver query.
 
+
   template<
       typename T1,
       ... ,
@@ -19988,7 +21767,9 @@
 
 [section:close basic_socket_iostream::close]
 
-[indexterm2 close..basic_socket_iostream] Close the connection.
+[indexterm2 close..basic_socket_iostream]
+Close the connection.
+
 
   void close();
 
@@ -20000,7 +21781,9 @@
 
 [section:connect basic_socket_iostream::connect]
 
-[indexterm2 connect..basic_socket_iostream] Establish a connection to an endpoint corresponding to a resolver query.
+[indexterm2 connect..basic_socket_iostream]
+Establish a connection to an endpoint corresponding to a resolver query.
+
 
   template<
       typename T1,
@@ -20021,7 +21804,9 @@
 
 [section:rdbuf basic_socket_iostream::rdbuf]
 
-[indexterm2 rdbuf..basic_socket_iostream] Return a pointer to the underlying streambuf.
+[indexterm2 rdbuf..basic_socket_iostream]
+Return a pointer to the underlying streambuf.
+
 
   basic_socket_streambuf< Protocol, StreamSocketService > * rdbuf() const;
 
@@ -20035,8 +21820,10 @@
 
 [section:basic_socket_streambuf basic_socket_streambuf]
 
+
 Iostream streambuf for a socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.StreamSocketService StreamSocketService]`` = stream_socket_service<Protocol>>
@@ -20395,7 +22182,9 @@
 
 [section:assign basic_socket_streambuf::assign]
 
-[indexterm2 assign..basic_socket_streambuf] Assign an existing native socket to the socket.
+[indexterm2 assign..basic_socket_streambuf]
+Assign an existing native socket to the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -20414,8 +22203,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_socket);
@@ -20431,8 +22222,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_socket,
@@ -20451,7 +22244,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 async_connect..basic_socket_streambuf] Start an asynchronous connect.
+[indexterm2 async_connect..basic_socket_streambuf]
+Start an asynchronous connect.
+
 
   void async_connect(
       const endpoint_type & peer_endpoint,
@@ -20476,10 +22271,11 @@
      const boost::system::error_code& error // Result of operation
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -20504,12 +22300,15 @@
 
 
 
+
 [endsect]
 
 
 [section:at_mark basic_socket_streambuf::at_mark]
 
-[indexterm2 at_mark..basic_socket_streambuf] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..basic_socket_streambuf]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool ``[link boost_asio.reference.basic_socket_streambuf.at_mark.overload1 at_mark]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.at_mark.overload1 more...]]``
@@ -20524,8 +22323,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark() const;
 
 
@@ -20536,6 +22337,7 @@
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
+
 [heading Exceptions]
     
 
@@ -20547,6 +22349,7 @@
 
 
 
+
 [endsect]
 
 
@@ -20556,8 +22359,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark(
       boost::system::error_code & ec) const;
 
@@ -20574,12 +22379,14 @@
 
 ]
 
+
 [heading Return Value]
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
 
 
+
 [endsect]
 
 
@@ -20587,7 +22394,9 @@
 
 [section:available basic_socket_streambuf::available]
 
-[indexterm2 available..basic_socket_streambuf] Determine the number of bytes available for reading.
+[indexterm2 available..basic_socket_streambuf]
+Determine the number of bytes available for reading.
+
 
   std::size_t ``[link boost_asio.reference.basic_socket_streambuf.available.overload1 available]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.available.overload1 more...]]``
@@ -20602,8 +22411,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available() const;
 
 
@@ -20614,6 +22425,7 @@
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
+
 [heading Exceptions]
     
 
@@ -20625,6 +22437,7 @@
 
 
 
+
 [endsect]
 
 
@@ -20634,8 +22447,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available(
       boost::system::error_code & ec) const;
 
@@ -20652,12 +22467,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
 
 
+
 [endsect]
 
 
@@ -20666,7 +22483,9 @@
 
 [section:basic_socket_streambuf basic_socket_streambuf::basic_socket_streambuf]
 
-[indexterm2 basic_socket_streambuf..basic_socket_streambuf] Construct a basic_socket_streambuf without establishing a connection.
+[indexterm2 basic_socket_streambuf..basic_socket_streambuf]
+Construct a [link boost_asio.reference.basic_socket_streambuf `basic_socket_streambuf`] without establishing a connection.
+
 
   basic_socket_streambuf();
 
@@ -20677,7 +22496,9 @@
 
 [section:bind basic_socket_streambuf::bind]
 
-[indexterm2 bind..basic_socket_streambuf] Bind the socket to the given local endpoint.
+[indexterm2 bind..basic_socket_streambuf]
+Bind the socket to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -20694,8 +22515,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -20712,6 +22535,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -20721,6 +22545,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -20735,6 +22560,7 @@
 
 
 
+
 [endsect]
 
 
@@ -20744,8 +22570,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -20765,6 +22593,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -20784,6 +22613,7 @@
 
 
 
+
 [endsect]
 
 
@@ -20795,7 +22625,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_socket_streambuf] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_socket_streambuf]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -20816,6 +22648,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -20828,6 +22661,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -20844,7 +22679,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_socket_streambuf] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_socket_streambuf]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -20867,6 +22704,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -20879,7 +22718,9 @@
 
 [section:cancel basic_socket_streambuf::cancel]
 
-[indexterm2 cancel..basic_socket_streambuf] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..basic_socket_streambuf]
+Cancel all asynchronous operations associated with the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.cancel.overload1 more...]]``
@@ -20894,12 +22735,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -20911,12 +22754,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -20924,6 +22770,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -20938,13 +22785,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -20956,12 +22805,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -20969,6 +22821,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -20981,13 +22834,17 @@
 
 [section:close basic_socket_streambuf::close]
 
-[indexterm2 close..basic_socket_streambuf] Close the connection.
+[indexterm2 close..basic_socket_streambuf]
+Close the connection.
+
 
   basic_socket_streambuf< Protocol, StreamSocketService > * ``[link boost_asio.reference.basic_socket_streambuf.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.close.overload1 more...]]``
 
+
 Close the socket.
 
+
   boost::system::error_code ``[link boost_asio.reference.basic_socket_streambuf.close.overload2 close]``(
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.close.overload2 more...]]``
@@ -20995,8 +22852,10 @@
 
 [section:overload1 basic_socket_streambuf::close (1 of 2 overloads)]
 
+
 Close the connection.
 
+
   basic_socket_streambuf< Protocol, StreamSocketService > * close();
 
 
@@ -21007,6 +22866,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21016,13 +22876,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -21034,6 +22896,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -21050,9 +22913,11 @@
 
 
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -21063,7 +22928,9 @@
 
 [section:connect basic_socket_streambuf::connect]
 
-[indexterm2 connect..basic_socket_streambuf] Establish a connection.
+[indexterm2 connect..basic_socket_streambuf]
+Establish a connection.
+
 
   basic_socket_streambuf< Protocol, StreamSocketService > * ``[link boost_asio.reference.basic_socket_streambuf.connect.overload1 connect]``(
       const endpoint_type & endpoint);
@@ -21079,8 +22946,10 @@
       TN tn);
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.connect.overload2 more...]]``
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code ``[link boost_asio.reference.basic_socket_streambuf.connect.overload3 connect]``(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -21089,8 +22958,10 @@
 
 [section:overload1 basic_socket_streambuf::connect (1 of 3 overloads)]
 
+
 Establish a connection.
 
+
   basic_socket_streambuf< Protocol, StreamSocketService > * connect(
       const endpoint_type & endpoint);
 
@@ -21104,14 +22975,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_socket_streambuf::connect (2 of 3 overloads)]
 
+
 Establish a connection.
 
+
   template<
       typename T1,
       ... ,
@@ -21131,6 +23005,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21140,8 +23015,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code connect(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -21163,6 +23040,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -21182,6 +23060,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21193,7 +23072,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_socket_streambuf] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_socket_streambuf]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -21214,6 +23095,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -21226,6 +23108,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -21242,7 +23126,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_socket_streambuf] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_socket_streambuf]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -21263,6 +23149,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -21275,6 +23162,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -21291,13 +23180,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_socket_streambuf] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_socket_streambuf]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -21312,6 +23203,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -21324,6 +23216,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -21337,7 +23231,9 @@
 
 [section:endpoint_type basic_socket_streambuf::endpoint_type]
 
-[indexterm2 endpoint_type..basic_socket_streambuf] The endpoint type.
+[indexterm2 endpoint_type..basic_socket_streambuf]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -21359,17 +23255,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_socket_streambuf] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_socket_streambuf]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -21378,7 +23277,9 @@
 
 [section:get_option basic_socket_streambuf::get_option]
 
-[indexterm2 get_option..basic_socket_streambuf] Get an option from the socket.
+[indexterm2 get_option..basic_socket_streambuf]
+Get an option from the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.get_option.overload1 get_option]``(
       GettableSocketOption & option) const;
@@ -21395,8 +23296,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   void get_option(
       GettableSocketOption & option) const;
 
@@ -21413,6 +23316,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -21422,6 +23326,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -21437,6 +23343,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21446,8 +23353,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   boost::system::error_code get_option(
       GettableSocketOption & option,
       boost::system::error_code & ec) const;
@@ -21467,6 +23376,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -21487,6 +23398,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21498,7 +23410,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_socket_streambuf] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_socket_streambuf]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -21513,7 +23427,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_socket_streambuf] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_socket_streambuf]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -21531,7 +23447,9 @@
 
 [section:io_control basic_socket_streambuf::io_control]
 
-[indexterm2 io_control..basic_socket_streambuf] Perform an IO control command on the socket.
+[indexterm2 io_control..basic_socket_streambuf]
+Perform an IO control command on the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.io_control.overload1 io_control]``(
       IoControlCommand & command);
@@ -21548,8 +23466,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   void io_control(
       IoControlCommand & command);
 
@@ -21566,6 +23486,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -21575,6 +23496,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -21590,6 +23513,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21599,8 +23523,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   boost::system::error_code io_control(
       IoControlCommand & command,
       boost::system::error_code & ec);
@@ -21620,6 +23546,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -21640,6 +23568,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21651,17 +23580,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_socket_streambuf] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_socket_streambuf]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -21674,7 +23606,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 is_open..basic_socket_streambuf] Determine whether the socket is open.
+[indexterm2 is_open..basic_socket_streambuf]
+Determine whether the socket is open.
+
 
   bool is_open() const;
 
@@ -21689,7 +23623,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_socket_streambuf] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_socket_streambuf]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -21710,6 +23646,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -21722,6 +23659,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -21738,7 +23677,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_socket_streambuf] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_socket_streambuf]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -21759,6 +23700,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -21772,6 +23714,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -21784,7 +23728,9 @@
 
 [section:local_endpoint basic_socket_streambuf::local_endpoint]
 
-[indexterm2 local_endpoint..basic_socket_streambuf] Get the local endpoint of the socket.
+[indexterm2 local_endpoint..basic_socket_streambuf]
+Get the local endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_socket_streambuf.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.local_endpoint.overload1 more...]]``
@@ -21799,8 +23745,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -21811,6 +23759,7 @@
       
 An object that represents the local endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -21820,6 +23769,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -21833,6 +23783,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21842,8 +23793,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -21860,10 +23813,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -21882,6 +23837,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21889,13 +23845,17 @@
 
 [section:lowest_layer basic_socket_streambuf::lowest_layer]
 
-[indexterm2 lowest_layer..basic_socket_streambuf] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_socket_streambuf]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_socket_streambuf.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_socket_streambuf.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.lowest_layer.overload2 more...]]``
 
@@ -21905,12 +23865,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -21919,6 +23881,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21928,12 +23891,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -21942,6 +23907,7 @@
 
 
 
+
 [endsect]
 
 
@@ -21953,7 +23919,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 lowest_layer_type..basic_socket_streambuf] A basic_socket is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_socket_streambuf]
+A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest layer.
+
 
   typedef basic_socket< Protocol, StreamSocketService > lowest_layer_type;
 
@@ -22283,14 +24251,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -22310,7 +24279,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_socket_streambuf] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_socket_streambuf]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -22325,7 +24296,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_socket_streambuf] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_socket_streambuf]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -22340,7 +24313,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_socket_streambuf] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_socket_streambuf]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -22362,7 +24337,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_socket_streambuf] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_socket_streambuf]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -22377,7 +24354,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_socket_streambuf] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_socket_streambuf]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -22392,7 +24371,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 native..basic_socket_streambuf] Get the native socket representation.
+[indexterm2 native..basic_socket_streambuf]
+Get the native socket representation.
+
 
   native_type native();
 
@@ -22409,7 +24390,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 native_type..basic_socket_streambuf] The native representation of a socket.
+[indexterm2 native_type..basic_socket_streambuf]
+The native representation of a socket.
+
 
   typedef StreamSocketService::native_type native_type;
 
@@ -22431,7 +24414,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_socket_streambuf] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_socket_streambuf]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -22453,6 +24438,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22465,7 +24452,9 @@
 
 [section:open basic_socket_streambuf::open]
 
-[indexterm2 open..basic_socket_streambuf] Open the socket using the specified protocol.
+[indexterm2 open..basic_socket_streambuf]
+Open the socket using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -22482,8 +24471,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -22500,6 +24491,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -22509,6 +24501,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -22521,6 +24514,7 @@
 
 
 
+
 [endsect]
 
 
@@ -22530,8 +24524,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -22551,6 +24547,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -22568,6 +24565,7 @@
 
 
 
+
 [endsect]
 
 
@@ -22592,7 +24590,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 protocol_type..basic_socket_streambuf] The protocol type.
+[indexterm2 protocol_type..basic_socket_streambuf]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -22614,7 +24614,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_socket_streambuf] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_socket_streambuf]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -22635,6 +24637,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -22647,6 +24650,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22663,7 +24668,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_socket_streambuf] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_socket_streambuf]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -22684,6 +24691,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -22696,6 +24704,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22708,7 +24718,9 @@
 
 [section:remote_endpoint basic_socket_streambuf::remote_endpoint]
 
-[indexterm2 remote_endpoint..basic_socket_streambuf] Get the remote endpoint of the socket.
+[indexterm2 remote_endpoint..basic_socket_streambuf]
+Get the remote endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_socket_streambuf.remote_endpoint.overload1 remote_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_socket_streambuf.remote_endpoint.overload1 more...]]``
@@ -22723,8 +24735,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint() const;
 
 
@@ -22735,6 +24749,7 @@
       
 An object that represents the remote endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -22744,6 +24759,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -22757,6 +24773,7 @@
 
 
 
+
 [endsect]
 
 
@@ -22766,8 +24783,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint(
       boost::system::error_code & ec) const;
 
@@ -22784,10 +24803,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the remote endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -22806,6 +24827,7 @@
 
 
 
+
 [endsect]
 
 
@@ -22817,7 +24839,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_socket_streambuf] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_socket_streambuf]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -22838,6 +24862,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -22850,6 +24875,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22866,7 +24893,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_socket_streambuf] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_socket_streambuf]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -22887,6 +24916,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -22899,6 +24929,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22915,7 +24947,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_socket_streambuf] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_socket_streambuf]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -22936,6 +24970,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -22948,6 +24983,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_socket_streambuf.hpp]
@@ -22964,7 +25001,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_socket_streambuf] The service associated with the I/O object.
+[indexterm2 service..basic_socket_streambuf]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -22979,7 +25018,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_socket_streambuf] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_socket_streambuf]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef StreamSocketService service_type;
 
@@ -22997,7 +25038,9 @@
 
 [section:set_option basic_socket_streambuf::set_option]
 
-[indexterm2 set_option..basic_socket_streambuf] Set an option on the socket.
+[indexterm2 set_option..basic_socket_streambuf]
+Set an option on the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.set_option.overload1 set_option]``(
       const SettableSocketOption & option);
@@ -23014,8 +25057,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   void set_option(
       const SettableSocketOption & option);
 
@@ -23032,6 +25077,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -23041,6 +25087,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -23055,6 +25103,7 @@
 
 
 
+
 [endsect]
 
 
@@ -23064,8 +25113,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   boost::system::error_code set_option(
       const SettableSocketOption & option,
       boost::system::error_code & ec);
@@ -23085,6 +25136,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -23104,6 +25157,7 @@
 
 
 
+
 [endsect]
 
 
@@ -23125,7 +25179,9 @@
 
 [section:shutdown basic_socket_streambuf::shutdown]
 
-[indexterm2 shutdown..basic_socket_streambuf] Disable sends or receives on the socket.
+[indexterm2 shutdown..basic_socket_streambuf]
+Disable sends or receives on the socket.
+
 
   void ``[link boost_asio.reference.basic_socket_streambuf.shutdown.overload1 shutdown]``(
       shutdown_type what);
@@ -23142,8 +25198,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   void shutdown(
       shutdown_type what);
 
@@ -23160,6 +25218,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -23169,6 +25228,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -23182,6 +25242,7 @@
 
 
 
+
 [endsect]
 
 
@@ -23191,8 +25252,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   boost::system::error_code shutdown(
       shutdown_type what,
       boost::system::error_code & ec);
@@ -23212,6 +25275,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -23230,6 +25294,7 @@
 
 
 
+
 [endsect]
 
 
@@ -23241,7 +25306,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_socket_streambuf] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_socket_streambuf]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -23301,7 +25368,9 @@
 
 [section:_basic_socket_streambuf basic_socket_streambuf::~basic_socket_streambuf]
 
-[indexterm2 ~basic_socket_streambuf..basic_socket_streambuf] Destructor flushes buffered data.
+[indexterm2 ~basic_socket_streambuf..basic_socket_streambuf]
+Destructor flushes buffered data.
+
 
   virtual ~basic_socket_streambuf();
 
@@ -23315,8 +25384,10 @@
 
 [section:basic_stream_socket basic_stream_socket]
 
+
 Provides stream-oriented socket functionality.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.StreamSocketService StreamSocketService]`` = stream_socket_service<Protocol>>
@@ -23680,14 +25751,16 @@
 
 ]
 
-The basic_stream_socket class template provides asynchronous and blocking stream-oriented socket functionality.
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -23698,7 +25771,9 @@
 
 [section:assign basic_stream_socket::assign]
 
-[indexterm2 assign..basic_stream_socket] Assign an existing native socket to the socket.
+[indexterm2 assign..basic_stream_socket]
+Assign an existing native socket to the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.assign.overload1 assign]``(
       const protocol_type & protocol,
@@ -23717,8 +25792,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   void assign(
       const protocol_type & protocol,
       const native_type & native_socket);
@@ -23734,8 +25811,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Assign an existing native socket to the socket.
 
+
   boost::system::error_code assign(
       const protocol_type & protocol,
       const native_type & native_socket,
@@ -23754,7 +25833,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 async_connect..basic_stream_socket] Start an asynchronous connect.
+[indexterm2 async_connect..basic_stream_socket]
+Start an asynchronous connect.
+
 
   void async_connect(
       const endpoint_type & peer_endpoint,
@@ -23779,10 +25860,11 @@
      const boost::system::error_code& error // Result of operation
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Example]
   
 
@@ -23807,13 +25889,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:async_read_some basic_stream_socket::async_read_some]
 
-[indexterm2 async_read_some..basic_stream_socket] Start an asynchronous read.
+[indexterm2 async_read_some..basic_stream_socket]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -23840,25 +25925,25 @@
      std::size_t bytes_transferred // Number of bytes read.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The read operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_read_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -23867,7 +25952,9 @@
 
 [section:async_receive basic_stream_socket::async_receive]
 
-[indexterm2 async_receive..basic_stream_socket] Start an asynchronous receive.
+[indexterm2 async_receive..basic_stream_socket]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -23889,8 +25976,10 @@
 
 [section:overload1 basic_stream_socket::async_receive (1 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -23916,25 +26005,25 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The receive operation may not receive all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
+The receive operation may not receive all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
+
 
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -23944,8 +26033,10 @@
 
 [section:overload2 basic_stream_socket::async_receive (2 of 2 overloads)]
 
+
 Start an asynchronous receive.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -23974,25 +26065,25 @@
      std::size_t bytes_transferred // Number of bytes received.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The receive operation may not receive all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
+The receive operation may not receive all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is received before the asynchronous operation completes.
+
 
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_receive(boost::asio::buffer(data, size), 0, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -24003,7 +26094,9 @@
 
 [section:async_send basic_stream_socket::async_send]
 
-[indexterm2 async_send..basic_stream_socket] Start an asynchronous send.
+[indexterm2 async_send..basic_stream_socket]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -24025,8 +26118,10 @@
 
 [section:overload1 basic_stream_socket::async_send (1 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -24052,25 +26147,25 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The send operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The send operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_send(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -24080,8 +26175,10 @@
 
 [section:overload2 basic_stream_socket::async_send (2 of 2 overloads)]
 
+
 Start an asynchronous send.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -24110,25 +26207,25 @@
      std::size_t bytes_transferred // Number of bytes sent.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The send operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The send operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_send(boost::asio::buffer(data, size), 0, handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -24140,7 +26237,9 @@
 
 [section:async_write_some basic_stream_socket::async_write_some]
 
-[indexterm2 async_write_some..basic_stream_socket] Start an asynchronous write.
+[indexterm2 async_write_some..basic_stream_socket]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -24167,25 +26266,25 @@
      std::size_t bytes_transferred // Number of bytes written.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The write operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.async_write_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -24194,7 +26293,9 @@
 
 [section:at_mark basic_stream_socket::at_mark]
 
-[indexterm2 at_mark..basic_stream_socket] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..basic_stream_socket]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool ``[link boost_asio.reference.basic_stream_socket.at_mark.overload1 at_mark]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.at_mark.overload1 more...]]``
@@ -24209,8 +26310,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark() const;
 
 
@@ -24221,6 +26324,7 @@
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
+
 [heading Exceptions]
     
 
@@ -24232,6 +26336,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24241,8 +26346,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine whether the socket is at the out-of-band data mark.
 
+
   bool at_mark(
       boost::system::error_code & ec) const;
 
@@ -24259,12 +26366,14 @@
 
 ]
 
+
 [heading Return Value]
       
 A bool indicating whether the socket is at the out-of-band data mark.
 
 
 
+
 [endsect]
 
 
@@ -24272,7 +26381,9 @@
 
 [section:available basic_stream_socket::available]
 
-[indexterm2 available..basic_stream_socket] Determine the number of bytes available for reading.
+[indexterm2 available..basic_stream_socket]
+Determine the number of bytes available for reading.
+
 
   std::size_t ``[link boost_asio.reference.basic_stream_socket.available.overload1 available]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.available.overload1 more...]]``
@@ -24287,8 +26398,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available() const;
 
 
@@ -24299,6 +26412,7 @@
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
+
 [heading Exceptions]
     
 
@@ -24310,6 +26424,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24319,8 +26434,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Determine the number of bytes available for reading.
 
+
   std::size_t available(
       boost::system::error_code & ec) const;
 
@@ -24337,12 +26454,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes that may be read without blocking, or 0 if an error occurs.
 
 
 
+
 [endsect]
 
 
@@ -24350,27 +26469,35 @@
 
 [section:basic_stream_socket basic_stream_socket::basic_stream_socket]
 
-[indexterm2 basic_stream_socket..basic_stream_socket] Construct a basic_stream_socket without opening it.
+[indexterm2 basic_stream_socket..basic_stream_socket]
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] without opening it.
+
 
- ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload1 basic_stream_socket]``(
+ explicit ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload1 basic_stream_socket]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload1 more...]]``
 
-Construct and open a basic_stream_socket.
+
+Construct and open a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`].
+
 
   ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload2 basic_stream_socket]``(
       boost::asio::io_service & io_service,
       const protocol_type & protocol);
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload2 more...]]``
 
-Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`], opening it and binding it to the given local endpoint.
+
 
   ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload3 basic_stream_socket]``(
       boost::asio::io_service & io_service,
       const endpoint_type & endpoint);
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload3 more...]]``
 
-Construct a basic_stream_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] on an existing native socket.
+
 
   ``[link boost_asio.reference.basic_stream_socket.basic_stream_socket.overload4 basic_stream_socket]``(
       boost::asio::io_service & io_service,
@@ -24381,7 +26508,9 @@
 
 [section:overload1 basic_stream_socket::basic_stream_socket (1 of 4 overloads)]
 
-Construct a basic_stream_socket without opening it.
+
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] without opening it.
+
 
   basic_stream_socket(
       boost::asio::io_service & io_service);
@@ -24395,19 +26524,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 basic_stream_socket::basic_stream_socket (2 of 4 overloads)]
 
-Construct and open a basic_stream_socket.
+
+Construct and open a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`].
+
 
   basic_stream_socket(
       boost::asio::io_service & io_service,
@@ -24422,12 +26554,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -24439,13 +26572,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 basic_stream_socket::basic_stream_socket (3 of 4 overloads)]
 
-Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`], opening it and binding it to the given local endpoint.
+
 
   basic_stream_socket(
       boost::asio::io_service & io_service,
@@ -24460,12 +26596,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[endpoint][An endpoint on the local machine to which the stream socket will be bound.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -24477,13 +26614,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 basic_stream_socket::basic_stream_socket (4 of 4 overloads)]
 
-Construct a basic_stream_socket on an existing native socket.
+
+Construct a [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] on an existing native socket.
+
 
   basic_stream_socket(
       boost::asio::io_service & io_service,
@@ -24499,7 +26639,7 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream socket will use to dispatch handlers for any asynchronous operations performed on the socket.]]
 
 [[protocol][An object specifying protocol parameters to be used.]]
 
@@ -24507,6 +26647,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -24518,6 +26659,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24525,7 +26667,9 @@
 
 [section:bind basic_stream_socket::bind]
 
-[indexterm2 bind..basic_stream_socket] Bind the socket to the given local endpoint.
+[indexterm2 bind..basic_stream_socket]
+Bind the socket to the given local endpoint.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.bind.overload1 bind]``(
       const endpoint_type & endpoint);
@@ -24542,8 +26686,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   void bind(
       const endpoint_type & endpoint);
 
@@ -24560,6 +26706,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -24569,6 +26716,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -24583,6 +26731,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24592,8 +26741,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Bind the socket to the given local endpoint.
 
+
   boost::system::error_code bind(
       const endpoint_type & endpoint,
       boost::system::error_code & ec);
@@ -24613,6 +26764,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -24632,6 +26784,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24643,7 +26796,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 broadcast..basic_stream_socket] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..basic_stream_socket]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -24664,6 +26819,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -24676,6 +26832,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -24692,7 +26850,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 bytes_readable..basic_stream_socket] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..basic_stream_socket]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -24715,6 +26875,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -24727,7 +26889,9 @@
 
 [section:cancel basic_stream_socket::cancel]
 
-[indexterm2 cancel..basic_stream_socket] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..basic_stream_socket]
+Cancel all asynchronous operations associated with the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.cancel.overload1 more...]]``
@@ -24742,12 +26906,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -24759,12 +26925,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -24772,6 +26941,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -24786,13 +26956,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Cancel all asynchronous operations associated with the socket.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous connect, send and receive operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -24804,12 +26976,15 @@
 
 ]
 
+
 [heading Remarks]
       
-Calls to cancel() will always fail with boost::asio::error::operation\_not\_supported when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+Calls to `cancel()` will always fail with `boost::asio::error::operation_not_supported` when run on Windows XP, Windows Server 2003, and earlier versions of Windows, unless BOOST\_ASIO\_ENABLE\_CANCELIO is defined. However, the CancelIo function has two issues that should be considered before enabling its use:
+
 
 * It will only cancel asynchronous operations that were initiated in the current thread.
 
+
 * It can appear to complete without error, but the request to cancel the unfinished operations may be silently ignored by the operating system. Whether it works or not seems to depend on the drivers that are installed.
 
 For portable cancellation, consider using one of the following alternatives:
@@ -24817,6 +26992,7 @@
 
 * Disable asio's I/O completion port backend by defining BOOST_ASIO_DISABLE_IOCP.
 
+
 * Use the close() function to simultaneously cancel the outstanding operations and close the socket.
 
 When running on Windows Vista, Windows Server 2008, and later, the CancelIoEx function is always used. This function does not have the problems described above.
@@ -24829,7 +27005,9 @@
 
 [section:close basic_stream_socket::close]
 
-[indexterm2 close..basic_stream_socket] Close the socket.
+[indexterm2 close..basic_stream_socket]
+Close the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.close.overload1 more...]]``
@@ -24844,12 +27022,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   void close();
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -24861,9 +27041,11 @@
 
 ]
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -24876,13 +27058,15 @@
 
 ['Inherited from basic_socket.]
 
+
 Close the socket.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the socket. Any asynchronous send, receive or connect operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -24894,6 +27078,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -24910,9 +27095,11 @@
 
 
 
+
 [heading Remarks]
       
-For portable behaviour with respect to graceful closure of a connected socket, call shutdown() before closing the socket.
+For portable behaviour with respect to graceful closure of a connected socket, call `shutdown()` before closing the socket.
+
 
 
 
@@ -24923,7 +27110,9 @@
 
 [section:connect basic_stream_socket::connect]
 
-[indexterm2 connect..basic_stream_socket] Connect the socket to the specified endpoint.
+[indexterm2 connect..basic_stream_socket]
+Connect the socket to the specified endpoint.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.connect.overload1 connect]``(
       const endpoint_type & peer_endpoint);
@@ -24940,8 +27129,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   void connect(
       const endpoint_type & peer_endpoint);
 
@@ -24960,6 +27151,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -24969,6 +27161,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -24983,6 +27176,7 @@
 
 
 
+
 [endsect]
 
 
@@ -24992,8 +27186,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Connect the socket to the specified endpoint.
 
+
   boost::system::error_code connect(
       const endpoint_type & peer_endpoint,
       boost::system::error_code & ec);
@@ -25015,6 +27211,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -25034,6 +27231,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25045,7 +27243,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 debug..basic_stream_socket] Socket option to enable socket-level debugging.
+[indexterm2 debug..basic_stream_socket]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -25066,6 +27266,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -25078,6 +27279,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -25094,7 +27297,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 do_not_route..basic_stream_socket] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..basic_stream_socket]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -25115,6 +27320,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -25127,6 +27333,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -25143,13 +27351,15 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 enable_connection_aborted..basic_stream_socket] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..basic_stream_socket]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -25164,6 +27374,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -25176,6 +27387,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -25189,7 +27402,9 @@
 
 [section:endpoint_type basic_stream_socket::endpoint_type]
 
-[indexterm2 endpoint_type..basic_stream_socket] The endpoint type.
+[indexterm2 endpoint_type..basic_stream_socket]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -25211,17 +27426,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..basic_stream_socket] Get the io_service associated with the object.
+[indexterm2 get_io_service..basic_stream_socket]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -25230,7 +27448,9 @@
 
 [section:get_option basic_stream_socket::get_option]
 
-[indexterm2 get_option..basic_stream_socket] Get an option from the socket.
+[indexterm2 get_option..basic_stream_socket]
+Get an option from the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.get_option.overload1 get_option]``(
       GettableSocketOption & option) const;
@@ -25247,8 +27467,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   void get_option(
       GettableSocketOption & option) const;
 
@@ -25265,6 +27487,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -25274,6 +27497,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -25289,6 +27514,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25298,8 +27524,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get an option from the socket.
 
+
   boost::system::error_code get_option(
       GettableSocketOption & option,
       boost::system::error_code & ec) const;
@@ -25319,6 +27547,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the value of the SOL\_SOCKET/SO\_KEEPALIVE option:
@@ -25339,6 +27569,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25350,7 +27581,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..basic_stream_socket] The underlying implementation of the I/O object.
+[indexterm2 implementation..basic_stream_socket]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -25365,7 +27598,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..basic_stream_socket] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..basic_stream_socket]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -25383,7 +27618,9 @@
 
 [section:io_control basic_stream_socket::io_control]
 
-[indexterm2 io_control..basic_stream_socket] Perform an IO control command on the socket.
+[indexterm2 io_control..basic_stream_socket]
+Perform an IO control command on the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.io_control.overload1 io_control]``(
       IoControlCommand & command);
@@ -25400,8 +27637,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   void io_control(
       IoControlCommand & command);
 
@@ -25418,6 +27657,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -25427,6 +27667,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -25442,6 +27684,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25451,8 +27694,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Perform an IO control command on the socket.
 
+
   boost::system::error_code io_control(
       IoControlCommand & command,
       boost::system::error_code & ec);
@@ -25472,6 +27717,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -25492,6 +27739,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25503,17 +27751,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..basic_stream_socket] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..basic_stream_socket]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -25526,7 +27777,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 is_open..basic_stream_socket] Determine whether the socket is open.
+[indexterm2 is_open..basic_stream_socket]
+Determine whether the socket is open.
+
 
   bool is_open() const;
 
@@ -25541,7 +27794,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 keep_alive..basic_stream_socket] Socket option to send keep-alives.
+[indexterm2 keep_alive..basic_stream_socket]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -25562,6 +27817,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -25574,6 +27830,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -25590,7 +27848,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 linger..basic_stream_socket] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..basic_stream_socket]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -25611,6 +27871,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -25624,6 +27885,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -25636,7 +27899,9 @@
 
 [section:local_endpoint basic_stream_socket::local_endpoint]
 
-[indexterm2 local_endpoint..basic_stream_socket] Get the local endpoint of the socket.
+[indexterm2 local_endpoint..basic_stream_socket]
+Get the local endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_stream_socket.local_endpoint.overload1 local_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.local_endpoint.overload1 more...]]``
@@ -25651,8 +27916,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint() const;
 
 
@@ -25663,6 +27930,7 @@
       
 An object that represents the local endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -25672,6 +27940,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -25685,6 +27954,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25694,8 +27964,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the local endpoint of the socket.
 
+
   endpoint_type local_endpoint(
       boost::system::error_code & ec) const;
 
@@ -25712,10 +27984,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the local endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -25734,6 +28008,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25741,13 +28016,17 @@
 
 [section:lowest_layer basic_stream_socket::lowest_layer]
 
-[indexterm2 lowest_layer..basic_stream_socket] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..basic_stream_socket]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.basic_stream_socket.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.basic_stream_socket.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.lowest_layer.overload2 more...]]``
 
@@ -25757,12 +28036,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -25771,6 +28052,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25780,12 +28062,14 @@
 
 ['Inherited from basic_socket.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_socket cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.basic_socket `basic_socket`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -25794,6 +28078,7 @@
 
 
 
+
 [endsect]
 
 
@@ -25805,7 +28090,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 lowest_layer_type..basic_stream_socket] A basic_socket is always the lowest layer.
+[indexterm2 lowest_layer_type..basic_stream_socket]
+A [link boost_asio.reference.basic_socket `basic_socket`] is always the lowest layer.
+
 
   typedef basic_socket< Protocol, StreamSocketService > lowest_layer_type;
 
@@ -26135,14 +28422,15 @@
 
 ]
 
-The basic_socket class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
+The [link boost_asio.reference.basic_socket `basic_socket`] class template provides functionality that is common to both stream-oriented and datagram-oriented sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -26162,7 +28450,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 max_connections..basic_stream_socket] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..basic_stream_socket]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -26177,7 +28467,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_do_not_route..basic_stream_socket] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..basic_stream_socket]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -26192,7 +28484,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_flags..basic_stream_socket] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..basic_stream_socket]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -26214,7 +28508,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_out_of_band..basic_stream_socket] Process out-of-band data.
+[indexterm2 message_out_of_band..basic_stream_socket]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -26229,7 +28525,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 message_peek..basic_stream_socket] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..basic_stream_socket]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -26244,7 +28542,9 @@
 
 ['Inherited from basic_socket.]
 
-[indexterm2 native..basic_stream_socket] Get the native socket representation.
+[indexterm2 native..basic_stream_socket]
+Get the native socket representation.
+
 
   native_type native();
 
@@ -26258,7 +28558,9 @@
 
 [section:native_type basic_stream_socket::native_type]
 
-[indexterm2 native_type..basic_stream_socket] The native representation of a socket.
+[indexterm2 native_type..basic_stream_socket]
+The native representation of a socket.
+
 
   typedef StreamSocketService::native_type native_type;
 
@@ -26280,7 +28582,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 non_blocking_io..basic_stream_socket] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..basic_stream_socket]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -26302,6 +28606,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -26314,7 +28620,9 @@
 
 [section:open basic_stream_socket::open]
 
-[indexterm2 open..basic_stream_socket] Open the socket using the specified protocol.
+[indexterm2 open..basic_stream_socket]
+Open the socket using the specified protocol.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.open.overload1 open]``(
       const protocol_type & protocol = protocol_type());
@@ -26331,8 +28639,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   void open(
       const protocol_type & protocol = protocol_type());
 
@@ -26349,6 +28659,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -26358,6 +28669,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -26370,6 +28682,7 @@
 
 
 
+
 [endsect]
 
 
@@ -26379,8 +28692,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Open the socket using the specified protocol.
 
+
   boost::system::error_code open(
       const protocol_type & protocol,
       boost::system::error_code & ec);
@@ -26400,6 +28715,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -26417,6 +28733,7 @@
 
 
 
+
 [endsect]
 
 
@@ -26425,7 +28742,9 @@
 
 [section:protocol_type basic_stream_socket::protocol_type]
 
-[indexterm2 protocol_type..basic_stream_socket] The protocol type.
+[indexterm2 protocol_type..basic_stream_socket]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -26443,7 +28762,9 @@
 
 [section:read_some basic_stream_socket::read_some]
 
-[indexterm2 read_some..basic_stream_socket] Read some data from the socket.
+[indexterm2 read_some..basic_stream_socket]
+Read some data from the socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -26461,8 +28782,10 @@
 
 [section:overload1 basic_stream_socket::read_some (1 of 2 overloads)]
 
+
 Read some data from the socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -26481,34 +28804,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.read_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -26518,8 +28843,10 @@
 
 [section:overload2 basic_stream_socket::read_some (2 of 2 overloads)]
 
+
 Read some data from the socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -26541,14 +28868,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -26559,7 +28888,9 @@
 
 [section:receive basic_stream_socket::receive]
 
-[indexterm2 receive..basic_stream_socket] Receive some data on the socket.
+[indexterm2 receive..basic_stream_socket]
+Receive some data on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -26574,8 +28905,10 @@
       socket_base::message_flags flags);
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.receive.overload2 more...]]``
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.basic_stream_socket.receive.overload3 receive]``(
@@ -26587,8 +28920,10 @@
 
 [section:overload1 basic_stream_socket::receive (1 of 3 overloads)]
 
+
 Receive some data on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -26607,34 +28942,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The receive operation may not receive all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The receive operation may not receive all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.receive(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -26644,8 +28981,10 @@
 
 [section:overload2 basic_stream_socket::receive (2 of 3 overloads)]
 
+
 Receive some data on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -26667,34 +29006,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The receive operation may not receive all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The receive operation may not receive all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To receive into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To receive into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.receive(boost::asio::buffer(data, size), 0);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on receiving into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -26704,8 +29045,10 @@
 
 [section:overload3 basic_stream_socket::receive (3 of 3 overloads)]
 
+
 Receive some data on a connected socket.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t receive(
@@ -26730,14 +29073,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes received. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The receive operation may not receive all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The receive operation may not receive all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -26752,7 +29097,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_buffer_size..basic_stream_socket] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..basic_stream_socket]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -26773,6 +29120,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -26785,6 +29133,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -26801,7 +29151,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 receive_low_watermark..basic_stream_socket] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..basic_stream_socket]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -26822,6 +29174,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -26834,6 +29187,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -26846,7 +29201,9 @@
 
 [section:remote_endpoint basic_stream_socket::remote_endpoint]
 
-[indexterm2 remote_endpoint..basic_stream_socket] Get the remote endpoint of the socket.
+[indexterm2 remote_endpoint..basic_stream_socket]
+Get the remote endpoint of the socket.
+
 
   endpoint_type ``[link boost_asio.reference.basic_stream_socket.remote_endpoint.overload1 remote_endpoint]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.basic_stream_socket.remote_endpoint.overload1 more...]]``
@@ -26861,8 +29218,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint() const;
 
 
@@ -26873,6 +29232,7 @@
       
 An object that represents the remote endpoint of the socket.
 
+
 [heading Exceptions]
     
 
@@ -26882,6 +29242,7 @@
 
 ]
 
+
 [heading Example]
   
 
@@ -26895,6 +29256,7 @@
 
 
 
+
 [endsect]
 
 
@@ -26904,8 +29266,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Get the remote endpoint of the socket.
 
+
   endpoint_type remote_endpoint(
       boost::system::error_code & ec) const;
 
@@ -26922,10 +29286,12 @@
 
 ]
 
+
 [heading Return Value]
       
 An object that represents the remote endpoint of the socket. Returns a default-constructed endpoint object if an error occurred.
 
+
 [heading Example]
   
 
@@ -26944,6 +29310,7 @@
 
 
 
+
 [endsect]
 
 
@@ -26955,7 +29322,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 reuse_address..basic_stream_socket] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..basic_stream_socket]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -26976,6 +29345,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -26988,6 +29358,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -27000,7 +29372,9 @@
 
 [section:send basic_stream_socket::send]
 
-[indexterm2 send..basic_stream_socket] Send some data on the socket.
+[indexterm2 send..basic_stream_socket]
+Send some data on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -27026,8 +29400,10 @@
 
 [section:overload1 basic_stream_socket::send (1 of 3 overloads)]
 
+
 Send some data on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -27046,10 +29422,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -27059,21 +29437,21 @@
 
 ]
 
+
 [heading Remarks]
       
-The send operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The send operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.send(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -27083,8 +29461,10 @@
 
 [section:overload2 basic_stream_socket::send (2 of 3 overloads)]
 
+
 Send some data on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -27106,10 +29486,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent.
 
+
 [heading Exceptions]
     
 
@@ -27119,21 +29501,21 @@
 
 ]
 
+
 [heading Remarks]
       
-The send operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The send operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To send a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To send a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.send(boost::asio::buffer(data, size), 0);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on sending multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -27143,8 +29525,10 @@
 
 [section:overload3 basic_stream_socket::send (3 of 3 overloads)]
 
+
 Send some data on the socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t send(
@@ -27169,14 +29553,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes sent. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The send operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The send operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -27191,7 +29577,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_buffer_size..basic_stream_socket] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..basic_stream_socket]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -27212,6 +29600,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -27224,6 +29613,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -27240,7 +29631,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 send_low_watermark..basic_stream_socket] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..basic_stream_socket]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -27261,6 +29654,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -27273,6 +29667,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/basic_stream_socket.hpp]
@@ -27289,7 +29685,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..basic_stream_socket] The service associated with the I/O object.
+[indexterm2 service..basic_stream_socket]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -27304,7 +29702,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..basic_stream_socket] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..basic_stream_socket]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef StreamSocketService service_type;
 
@@ -27322,7 +29722,9 @@
 
 [section:set_option basic_stream_socket::set_option]
 
-[indexterm2 set_option..basic_stream_socket] Set an option on the socket.
+[indexterm2 set_option..basic_stream_socket]
+Set an option on the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.set_option.overload1 set_option]``(
       const SettableSocketOption & option);
@@ -27339,8 +29741,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   void set_option(
       const SettableSocketOption & option);
 
@@ -27357,6 +29761,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -27366,6 +29771,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -27380,6 +29787,7 @@
 
 
 
+
 [endsect]
 
 
@@ -27389,8 +29797,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Set an option on the socket.
 
+
   boost::system::error_code set_option(
       const SettableSocketOption & option,
       boost::system::error_code & ec);
@@ -27410,6 +29820,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Setting the IPPROTO\_TCP/TCP\_NODELAY option:
@@ -27429,6 +29841,7 @@
 
 
 
+
 [endsect]
 
 
@@ -27436,7 +29849,9 @@
 
 [section:shutdown basic_stream_socket::shutdown]
 
-[indexterm2 shutdown..basic_stream_socket] Disable sends or receives on the socket.
+[indexterm2 shutdown..basic_stream_socket]
+Disable sends or receives on the socket.
+
 
   void ``[link boost_asio.reference.basic_stream_socket.shutdown.overload1 shutdown]``(
       shutdown_type what);
@@ -27453,8 +29868,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   void shutdown(
       shutdown_type what);
 
@@ -27471,6 +29888,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -27480,6 +29898,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -27493,6 +29912,7 @@
 
 
 
+
 [endsect]
 
 
@@ -27502,8 +29922,10 @@
 
 ['Inherited from basic_socket.]
 
+
 Disable sends or receives on the socket.
 
+
   boost::system::error_code shutdown(
       shutdown_type what,
       boost::system::error_code & ec);
@@ -27523,6 +29945,7 @@
 
 ]
 
+
 [heading Example]
   
 Shutting down the send side of the socket:
@@ -27541,6 +29964,7 @@
 
 
 
+
 [endsect]
 
 
@@ -27552,7 +29976,9 @@
 
 ['Inherited from socket_base.]
 
-[indexterm2 shutdown_type..basic_stream_socket] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..basic_stream_socket]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -27587,7 +30013,9 @@
 
 [section:write_some basic_stream_socket::write_some]
 
-[indexterm2 write_some..basic_stream_socket] Write some data to the socket.
+[indexterm2 write_some..basic_stream_socket]
+Write some data to the socket.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -27605,8 +30033,10 @@
 
 [section:overload1 basic_stream_socket::write_some (1 of 2 overloads)]
 
+
 Write some data to the socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -27625,34 +30055,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    socket.write_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -27662,8 +30094,10 @@
 
 [section:overload2 basic_stream_socket::write_some (2 of 2 overloads)]
 
+
 Write some data to the socket.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -27685,14 +30119,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -27706,8 +30142,10 @@
 
 [section:basic_streambuf basic_streambuf]
 
+
 Automatically resizable buffer class based on std::streambuf.
 
+
   template<
       typename Allocator = std::allocator<char>>
   class basic_streambuf :
@@ -27803,11 +30241,13 @@
 
 * A single contiguous character array, which is reallocated as necessary to accommodate changes in the size of the character sequence. This is the implementation approach currently used in Asio.
 
+
 * A sequence of one or more character arrays, where each array is of the same size. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
+
 * A sequence of one or more character arrays of varying sizes. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
-The constructor for basic_streambuf accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
+The constructor for [link boost_asio.reference.basic_streambuf `basic_streambuf`] accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
 
    size() <= max_size()
 
@@ -27861,7 +30301,9 @@
 
 [section:basic_streambuf basic_streambuf::basic_streambuf]
 
-[indexterm2 basic_streambuf..basic_streambuf] Construct a basic_streambuf object.
+[indexterm2 basic_streambuf..basic_streambuf]
+Construct a [link boost_asio.reference.basic_streambuf `basic_streambuf`] object.
+
 
   basic_streambuf(
       std::size_t max_size = (std::numeric_limits< std::size_t >::max)(),
@@ -27877,7 +30319,9 @@
 
 [section:commit basic_streambuf::commit]
 
-[indexterm2 commit..basic_streambuf] Move characters from the output sequence to the input sequence.
+[indexterm2 commit..basic_streambuf]
+Move characters from the output sequence to the input sequence.
+
 
   void commit(
       std::size_t n);
@@ -27899,13 +30343,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:const_buffers_type basic_streambuf::const_buffers_type]
 
-[indexterm2 const_buffers_type..basic_streambuf] The type used to represent the input sequence as a list of buffers.
+[indexterm2 const_buffers_type..basic_streambuf]
+The type used to represent the input sequence as a list of buffers.
+
 
   typedef implementation_defined const_buffers_type;
 
@@ -27924,7 +30371,9 @@
 
 [section:consume basic_streambuf::consume]
 
-[indexterm2 consume..basic_streambuf] Remove characters from the input sequence.
+[indexterm2 consume..basic_streambuf]
+Remove characters from the input sequence.
+
 
   void consume(
       std::size_t n);
@@ -27944,13 +30393,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:data basic_streambuf::data]
 
-[indexterm2 data..basic_streambuf] Get a list of buffers that represents the input sequence.
+[indexterm2 data..basic_streambuf]
+Get a list of buffers that represents the input sequence.
+
 
   const_buffers_type data() const;
 
@@ -27960,19 +30412,23 @@
       
 An object of type `const_buffers_type` that satisfies ConstBufferSequence requirements, representing all character arrays in the input sequence.
 
+
 [heading Remarks]
       
 The returned object is invalidated by any `basic_streambuf` member function that modifies the input sequence or output sequence.
 
 
 
+
 [endsect]
 
 
 
 [section:max_size basic_streambuf::max_size]
 
-[indexterm2 max_size..basic_streambuf] Get the maximum size of the basic_streambuf.
+[indexterm2 max_size..basic_streambuf]
+Get the maximum size of the [link boost_asio.reference.basic_streambuf `basic_streambuf`].
+
 
   std::size_t max_size() const;
 
@@ -27984,13 +30440,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:mutable_buffers_type basic_streambuf::mutable_buffers_type]
 
-[indexterm2 mutable_buffers_type..basic_streambuf] The type used to represent the output sequence as a list of buffers.
+[indexterm2 mutable_buffers_type..basic_streambuf]
+The type used to represent the output sequence as a list of buffers.
+
 
   typedef implementation_defined mutable_buffers_type;
 
@@ -28009,7 +30468,9 @@
 
 [section:overflow basic_streambuf::overflow]
 
-[indexterm2 overflow..basic_streambuf] Override std::streambuf behaviour.
+[indexterm2 overflow..basic_streambuf]
+Override std::streambuf behaviour.
+
 
   int_type overflow(
       int_type c);
@@ -28024,7 +30485,9 @@
 
 [section:prepare basic_streambuf::prepare]
 
-[indexterm2 prepare..basic_streambuf] Get a list of buffers that represents the output sequence, with the given size.
+[indexterm2 prepare..basic_streambuf]
+Get a list of buffers that represents the output sequence, with the given size.
+
 
   mutable_buffers_type prepare(
       std::size_t n);
@@ -28037,6 +30500,7 @@
       
 An object of type `mutable_buffers_type` that satisfies MutableBufferSequence requirements, representing character array objects at the start of the output sequence such that the sum of the buffer sizes is `n`.
 
+
 [heading Exceptions]
     
 
@@ -28046,12 +30510,14 @@
 
 ]
 
+
 [heading Remarks]
       
 The returned object is invalidated by any `basic_streambuf` member function that modifies the input sequence or output sequence.
 
 
 
+
 [endsect]
 
 
@@ -28071,7 +30537,9 @@
 
 [section:size basic_streambuf::size]
 
-[indexterm2 size..basic_streambuf] Get the size of the input sequence.
+[indexterm2 size..basic_streambuf]
+Get the size of the input sequence.
+
 
   std::size_t size() const;
 
@@ -28095,13 +30563,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:underflow basic_streambuf::underflow]
 
-[indexterm2 underflow..basic_streambuf] Override std::streambuf behaviour.
+[indexterm2 underflow..basic_streambuf]
+Override std::streambuf behaviour.
+
 
   int_type underflow();
 
@@ -28117,7 +30588,9 @@
 
 [section:buffer buffer]
 
-[indexterm1 buffer] The boost::asio::buffer function is used to create a buffer object to represent raw memory, an array of POD elements, a vector of POD elements, or a std::string.
+[indexterm1 buffer]
+The `boost::asio::buffer` function is used to create a buffer object to represent raw memory, an array of POD elements, a vector of POD elements, or a std::string.
+
       
   mutable_buffers_1 ``[link boost_asio.reference.buffer.overload1 buffer]``(
       const mutable_buffer & b);
@@ -28261,7 +30734,7 @@
       std::size_t max_size_in_bytes);
   `` [''''&raquo;''' [link boost_asio.reference.buffer.overload22 more...]]``
 
-A buffer object represents a contiguous region of memory as a 2-tuple consisting of a pointer and size in bytes. A tuple of the form `{void*, size_t}` specifies a mutable (modifiable) region of memory. Similarly, a tuple of the form `{const void*, size_t}` specifies a const (non-modifiable) region of memory. These two forms correspond to the classes mutable_buffer and const_buffer, respectively. To mirror C++'s conversion rules, a mutable_buffer is implicitly convertible to a const_buffer, and the opposite conversion is not permitted.
+A buffer object represents a contiguous region of memory as a 2-tuple consisting of a pointer and size in bytes. A tuple of the form `{void*, size_t}` specifies a mutable (modifiable) region of memory. Similarly, a tuple of the form `{const void*, size_t}` specifies a const (non-modifiable) region of memory. These two forms correspond to the classes [link boost_asio.reference.mutable_buffer `mutable_buffer`] and [link boost_asio.reference.const_buffer `const_buffer`], respectively. To mirror C++'s conversion rules, a [link boost_asio.reference.mutable_buffer `mutable_buffer`] is implicitly convertible to a [link boost_asio.reference.const_buffer `const_buffer`], and the opposite conversion is not permitted.
 
 The simplest use case involves reading or writing a single buffer of a specified size:
 
@@ -28272,7 +30745,7 @@
 
 
 
-In the above example, the return value of boost::asio::buffer meets the requirements of the ConstBufferSequence concept so that it may be directly passed to the socket's write function. A buffer created for modifiable memory also meets the requirements of the MutableBufferSequence concept.
+In the above example, the return value of `boost::asio::buffer` meets the requirements of the ConstBufferSequence concept so that it may be directly passed to the socket's write function. A buffer created for modifiable memory also meets the requirements of the MutableBufferSequence concept.
 
 An individual buffer may be created from a builtin array, std::vector or boost::array of POD elements. This helps prevent buffer overruns by automatically determining the size of the buffer:
 
@@ -28290,7 +30763,7 @@
 
 
 
-In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is [*never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
+In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is [*never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
 
 
 [heading Accessing Buffer Contents]
@@ -28321,9 +30794,9 @@
 
 A buffer object does not have any ownership of the memory it refers to. It is the responsibility of the application to ensure the memory region remains valid until it is no longer required for an I/O operation. When the memory is no longer available, the buffer is said to have been invalidated.
 
-For the boost::asio::buffer overloads that accept an argument of type std::vector, the buffer objects returned are invalidated by any vector operation that also invalidates all references, pointers and iterators referring to the elements in the sequence (C++ Std, 23.2.4)
+For the `boost::asio::buffer` overloads that accept an argument of type std::vector, the buffer objects returned are invalidated by any vector operation that also invalidates all references, pointers and iterators referring to the elements in the sequence (C++ Std, 23.2.4)
 
-For the boost::asio::buffer overloads that accept an argument of type std::string, the buffer objects returned are invalidated according to the rules defined for invalidation of references, pointers and iterators referring to elements of the sequence (C++ Std, 21.3).
+For the `boost::asio::buffer` overloads that accept an argument of type std::string, the buffer objects returned are invalidated according to the rules defined for invalidation of references, pointers and iterators referring to elements of the sequence (C++ Std, 21.3).
 
 
 [heading Buffer Arithmetic]
@@ -28348,7 +30821,7 @@
 
 
 
-represents the entire array, `{ 'a', 'b', 'c', 'd', 'e' }`. An optional second argument to the boost::asio::buffer function may be used to limit the size, in bytes, of the buffer:
+represents the entire array, `{ 'a', 'b', 'c', 'd', 'e' }`. An optional second argument to the `boost::asio::buffer` function may be used to limit the size, in bytes, of the buffer:
 
 
 
@@ -28418,8 +30891,10 @@
 
 [section:overload1 buffer (1 of 22 overloads)]
 
+
 Create a new modifiable buffer from an existing buffer.
 
+
   mutable_buffers_1 buffer(
       const mutable_buffer & b);
 
@@ -28431,14 +30906,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 buffer (2 of 22 overloads)]
 
+
 Create a new modifiable buffer from an existing buffer.
 
+
   mutable_buffers_1 buffer(
       const mutable_buffer & b,
       std::size_t max_size_in_bytes);
@@ -28447,7 +30925,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        buffer_cast<void*>(b),
@@ -28458,14 +30936,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 buffer (3 of 22 overloads)]
 
+
 Create a new non-modifiable buffer from an existing buffer.
 
+
   const_buffers_1 buffer(
       const const_buffer & b);
 
@@ -28477,14 +30958,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 buffer (4 of 22 overloads)]
 
+
 Create a new non-modifiable buffer from an existing buffer.
 
+
   const_buffers_1 buffer(
       const const_buffer & b,
       std::size_t max_size_in_bytes);
@@ -28493,7 +30977,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        buffer_cast<const void*>(b),
@@ -28504,14 +30988,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 buffer (5 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given memory range.
 
+
   mutable_buffers_1 buffer(
       void * data,
       std::size_t size_in_bytes);
@@ -28524,14 +31011,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 buffer (6 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given memory range.
 
+
   const_buffers_1 buffer(
       const void * data,
       std::size_t size_in_bytes);
@@ -28544,14 +31034,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload7 buffer (7 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28562,7 +31055,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        static_cast<void*>(data),
@@ -28573,14 +31066,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload8 buffer (8 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28592,7 +31088,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        static_cast<void*>(data),
@@ -28603,14 +31099,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload9 buffer (9 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28621,7 +31120,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        static_cast<const void*>(data),
@@ -28632,14 +31131,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload10 buffer (10 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28651,7 +31153,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        static_cast<const void*>(data),
@@ -28662,14 +31164,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload11 buffer (11 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28680,7 +31185,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        data.data(),
@@ -28691,14 +31196,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload12 buffer (12 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28710,7 +31218,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        data.data(),
@@ -28721,14 +31229,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload13 buffer (13 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28739,7 +31250,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.data(),
@@ -28750,14 +31261,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload14 buffer (14 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28769,7 +31283,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.data(),
@@ -28780,14 +31294,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload15 buffer (15 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28798,7 +31315,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.data(),
@@ -28809,14 +31326,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload16 buffer (16 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD array.
 
+
   template<
       typename PodType,
       std::size_t N>
@@ -28828,7 +31348,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.data(),
@@ -28839,14 +31359,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload17 buffer (17 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD vector.
 
+
   template<
       typename PodType,
       typename Allocator>
@@ -28857,7 +31380,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        data.size() ? &data[0] : 0,
@@ -28866,20 +31389,24 @@
 
 
 
+
 [heading Remarks]
       
 The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
 
+
 [endsect]
 
 
 
 [section:overload18 buffer (18 of 22 overloads)]
 
+
 Create a new modifiable buffer that represents the given POD vector.
 
+
   template<
       typename PodType,
       typename Allocator>
@@ -28891,7 +31418,7 @@
 
 [heading Return Value]
       
-A mutable_buffers_1 value equivalent to:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
    mutable_buffers_1(
        data.size() ? &data[0] : 0,
@@ -28900,20 +31427,24 @@
 
 
 
+
 [heading Remarks]
       
 The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
 
+
 [endsect]
 
 
 
 [section:overload19 buffer (19 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD vector.
 
+
   template<
       typename PodType,
       typename Allocator>
@@ -28924,7 +31455,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.size() ? &data[0] : 0,
@@ -28933,20 +31464,24 @@
 
 
 
+
 [heading Remarks]
       
 The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
 
+
 [endsect]
 
 
 
 [section:overload20 buffer (20 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given POD vector.
 
+
   template<
       typename PodType,
       typename Allocator>
@@ -28958,7 +31493,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.size() ? &data[0] : 0,
@@ -28967,20 +31502,24 @@
 
 
 
+
 [heading Remarks]
       
 The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
 
+
 [endsect]
 
 
 
 [section:overload21 buffer (21 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given string.
 
+
   const_buffers_1 buffer(
       const std::string & data);
 
@@ -28990,20 +31529,24 @@
       
 `const_buffers_1(data.data(), data.size())`.
 
+
 [heading Remarks]
       
 The buffer is invalidated by any non-const operation called on the given string object.
 
 
 
+
 [endsect]
 
 
 
 [section:overload22 buffer (22 of 22 overloads)]
 
+
 Create a new non-modifiable buffer that represents the given string.
 
+
   const_buffers_1 buffer(
       const std::string & data,
       std::size_t max_size_in_bytes);
@@ -29012,7 +31555,7 @@
 
 [heading Return Value]
       
-A const_buffers_1 value equivalent to:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
    const_buffers_1(
        data.data(),
@@ -29021,12 +31564,14 @@
 
 
 
+
 [heading Remarks]
       
 The buffer is invalidated by any non-const operation called on the given string object.
 
 
 
+
 [endsect]
 
 
@@ -29034,8 +31579,10 @@
 
 [section:buffered_read_stream buffered_read_stream]
 
+
 Adds buffering to the read-related operations of a stream.
 
+
   template<
       typename Stream>
   class buffered_read_stream :
@@ -29159,14 +31706,16 @@
 
 ]
 
-The buffered_read_stream class template can be used to add buffering to the synchronous and asynchronous read operations of a stream.
+The [link boost_asio.reference.buffered_read_stream `buffered_read_stream`] class template can be used to add buffering to the synchronous and asynchronous read operations of a stream.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -29178,7 +31727,9 @@
 
 [section:async_fill buffered_read_stream::async_fill]
 
-[indexterm2 async_fill..buffered_read_stream] Start an asynchronous fill.
+[indexterm2 async_fill..buffered_read_stream]
+Start an asynchronous fill.
+
 
   template<
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -29193,7 +31744,9 @@
 
 [section:async_read_some buffered_read_stream::async_read_some]
 
-[indexterm2 async_read_some..buffered_read_stream] Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_read_some..buffered_read_stream]
+Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -29210,7 +31763,9 @@
 
 [section:async_write_some buffered_read_stream::async_write_some]
 
-[indexterm2 async_write_some..buffered_read_stream] Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_write_some..buffered_read_stream]
+Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -29226,11 +31781,13 @@
 
 [section:buffered_read_stream buffered_read_stream::buffered_read_stream]
 
-[indexterm2 buffered_read_stream..buffered_read_stream] Construct, passing the specified argument to initialise the next layer.
+[indexterm2 buffered_read_stream..buffered_read_stream]
+Construct, passing the specified argument to initialise the next layer.
+
 
   template<
       typename Arg>
- ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 buffered_read_stream]``(
+ explicit ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 buffered_read_stream]``(
       Arg & a);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 more...]]``
 
@@ -29244,8 +31801,10 @@
 
 [section:overload1 buffered_read_stream::buffered_read_stream (1 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_read_stream(
@@ -29259,8 +31818,10 @@
 
 [section:overload2 buffered_read_stream::buffered_read_stream (2 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_read_stream(
@@ -29276,7 +31837,9 @@
 
 [section:close buffered_read_stream::close]
 
-[indexterm2 close..buffered_read_stream] Close the stream.
+[indexterm2 close..buffered_read_stream]
+Close the stream.
+
 
   void ``[link boost_asio.reference.buffered_read_stream.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.close.overload1 more...]]``
@@ -29288,8 +31851,10 @@
 
 [section:overload1 buffered_read_stream::close (1 of 2 overloads)]
 
+
 Close the stream.
 
+
   void close();
 
 
@@ -29300,8 +31865,10 @@
 
 [section:overload2 buffered_read_stream::close (2 of 2 overloads)]
 
+
 Close the stream.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
@@ -29315,7 +31882,9 @@
 
 [section:default_buffer_size buffered_read_stream::default_buffer_size]
 
-[indexterm2 default_buffer_size..buffered_read_stream] The default buffer size.
+[indexterm2 default_buffer_size..buffered_read_stream]
+The default buffer size.
+
 
   static const std::size_t default_buffer_size = implementation_defined;
 
@@ -29326,13 +31895,17 @@
 
 [section:fill buffered_read_stream::fill]
 
-[indexterm2 fill..buffered_read_stream] Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+[indexterm2 fill..buffered_read_stream]
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+
 
   std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload1 fill]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload1 more...]]``
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
+
   std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload2 fill]``(
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload2 more...]]``
@@ -29340,8 +31913,10 @@
 
 [section:overload1 buffered_read_stream::fill (1 of 2 overloads)]
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
+
   std::size_t fill();
 
 
@@ -29352,8 +31927,10 @@
 
 [section:overload2 buffered_read_stream::fill (2 of 2 overloads)]
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
+
   std::size_t fill(
       boost::system::error_code & ec);
 
@@ -29367,7 +31944,9 @@
 
 [section:get_io_service buffered_read_stream::get_io_service]
 
-[indexterm2 get_io_service..buffered_read_stream] Get the io_service associated with the object.
+[indexterm2 get_io_service..buffered_read_stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -29378,7 +31957,9 @@
 
 [section:in_avail buffered_read_stream::in_avail]
 
-[indexterm2 in_avail..buffered_read_stream] Determine the amount of data that may be read without blocking.
+[indexterm2 in_avail..buffered_read_stream]
+Determine the amount of data that may be read without blocking.
+
 
   std::size_t ``[link boost_asio.reference.buffered_read_stream.in_avail.overload1 in_avail]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.in_avail.overload1 more...]]``
@@ -29390,8 +31971,10 @@
 
 [section:overload1 buffered_read_stream::in_avail (1 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail();
 
 
@@ -29402,8 +31985,10 @@
 
 [section:overload2 buffered_read_stream::in_avail (2 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail(
       boost::system::error_code & ec);
 
@@ -29417,7 +32002,9 @@
 
 [section:io_service buffered_read_stream::io_service]
 
-[indexterm2 io_service..buffered_read_stream] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..buffered_read_stream]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
@@ -29428,21 +32015,27 @@
 
 [section:lowest_layer buffered_read_stream::lowest_layer]
 
-[indexterm2 lowest_layer..buffered_read_stream] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..buffered_read_stream]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 buffered_read_stream::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
@@ -29453,8 +32046,10 @@
 
 [section:overload2 buffered_read_stream::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
@@ -29467,7 +32062,9 @@
 
 [section:lowest_layer_type buffered_read_stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..buffered_read_stream] The type of the lowest layer.
+[indexterm2 lowest_layer_type..buffered_read_stream]
+The type of the lowest layer.
+
 
   typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
@@ -29486,7 +32083,9 @@
 
 [section:next_layer buffered_read_stream::next_layer]
 
-[indexterm2 next_layer..buffered_read_stream] Get a reference to the next layer.
+[indexterm2 next_layer..buffered_read_stream]
+Get a reference to the next layer.
+
 
   next_layer_type & next_layer();
 
@@ -29498,7 +32097,9 @@
 
 [section:next_layer_type buffered_read_stream::next_layer_type]
 
-[indexterm2 next_layer_type..buffered_read_stream] The type of the next layer.
+[indexterm2 next_layer_type..buffered_read_stream]
+The type of the next layer.
+
 
   typedef boost::remove_reference< Stream >::type next_layer_type;
 
@@ -29516,7 +32117,9 @@
 
 [section:peek buffered_read_stream::peek]
 
-[indexterm2 peek..buffered_read_stream] Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 peek..buffered_read_stream]
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -29524,8 +32127,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.peek.overload1 more...]]``
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_read_stream.peek.overload2 peek]``(
@@ -29536,8 +32141,10 @@
 
 [section:overload1 buffered_read_stream::peek (1 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -29551,8 +32158,10 @@
 
 [section:overload2 buffered_read_stream::peek (2 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -29568,7 +32177,9 @@
 
 [section:read_some buffered_read_stream::read_some]
 
-[indexterm2 read_some..buffered_read_stream] Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 read_some..buffered_read_stream]
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -29576,8 +32187,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.read_some.overload1 more...]]``
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_read_stream.read_some.overload2 read_some]``(
@@ -29588,8 +32201,10 @@
 
 [section:overload1 buffered_read_stream::read_some (1 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -29603,8 +32218,10 @@
 
 [section:overload2 buffered_read_stream::read_some (2 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -29620,7 +32237,9 @@
 
 [section:write_some buffered_read_stream::write_some]
 
-[indexterm2 write_some..buffered_read_stream] Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+[indexterm2 write_some..buffered_read_stream]
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -29628,8 +32247,10 @@
       const ConstBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.write_some.overload1 more...]]``
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_read_stream.write_some.overload2 write_some]``(
@@ -29640,8 +32261,10 @@
 
 [section:overload1 buffered_read_stream::write_some (1 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -29655,8 +32278,10 @@
 
 [section:overload2 buffered_read_stream::write_some (2 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -29675,8 +32300,10 @@
 
 [section:buffered_stream buffered_stream]
 
+
 Adds buffering to the read- and write-related operations of a stream.
 
+
   template<
       typename Stream>
   class buffered_stream :
@@ -29801,14 +32428,16 @@
   
 ]
 
-The buffered_stream class template can be used to add buffering to the synchronous and asynchronous read and write operations of a stream.
+The [link boost_asio.reference.buffered_stream `buffered_stream`] class template can be used to add buffering to the synchronous and asynchronous read and write operations of a stream.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -29820,7 +32449,9 @@
 
 [section:async_fill buffered_stream::async_fill]
 
-[indexterm2 async_fill..buffered_stream] Start an asynchronous fill.
+[indexterm2 async_fill..buffered_stream]
+Start an asynchronous fill.
+
 
   template<
       typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
@@ -29835,7 +32466,9 @@
 
 [section:async_flush buffered_stream::async_flush]
 
-[indexterm2 async_flush..buffered_stream] Start an asynchronous flush.
+[indexterm2 async_flush..buffered_stream]
+Start an asynchronous flush.
+
 
   template<
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -29850,7 +32483,9 @@
 
 [section:async_read_some buffered_stream::async_read_some]
 
-[indexterm2 async_read_some..buffered_stream] Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_read_some..buffered_stream]
+Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -29867,7 +32502,9 @@
 
 [section:async_write_some buffered_stream::async_write_some]
 
-[indexterm2 async_write_some..buffered_stream] Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_write_some..buffered_stream]
+Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -29883,17 +32520,19 @@
 
 [section:buffered_stream buffered_stream::buffered_stream]
 
-[indexterm2 buffered_stream..buffered_stream] Construct, passing the specified argument to initialise the next layer.
+[indexterm2 buffered_stream..buffered_stream]
+Construct, passing the specified argument to initialise the next layer.
+
 
   template<
       typename Arg>
- ``[link boost_asio.reference.buffered_stream.buffered_stream.overload1 buffered_stream]``(
+ explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload1 buffered_stream]``(
       Arg & a);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.buffered_stream.overload1 more...]]``
 
   template<
       typename Arg>
- ``[link boost_asio.reference.buffered_stream.buffered_stream.overload2 buffered_stream]``(
+ explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload2 buffered_stream]``(
       Arg & a,
       std::size_t read_buffer_size,
       std::size_t write_buffer_size);
@@ -29902,8 +32541,10 @@
 
 [section:overload1 buffered_stream::buffered_stream (1 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_stream(
@@ -29917,8 +32558,10 @@
 
 [section:overload2 buffered_stream::buffered_stream (2 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_stream(
@@ -29935,7 +32578,9 @@
 
 [section:close buffered_stream::close]
 
-[indexterm2 close..buffered_stream] Close the stream.
+[indexterm2 close..buffered_stream]
+Close the stream.
+
 
   void ``[link boost_asio.reference.buffered_stream.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.close.overload1 more...]]``
@@ -29947,8 +32592,10 @@
 
 [section:overload1 buffered_stream::close (1 of 2 overloads)]
 
+
 Close the stream.
 
+
   void close();
 
 
@@ -29959,8 +32606,10 @@
 
 [section:overload2 buffered_stream::close (2 of 2 overloads)]
 
+
 Close the stream.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
@@ -29973,13 +32622,17 @@
 
 [section:fill buffered_stream::fill]
 
-[indexterm2 fill..buffered_stream] Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+[indexterm2 fill..buffered_stream]
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+
 
   std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload1 fill]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload1 more...]]``
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
+
   std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload2 fill]``(
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload2 more...]]``
@@ -29987,8 +32640,10 @@
 
 [section:overload1 buffered_stream::fill (1 of 2 overloads)]
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
+
   std::size_t fill();
 
 
@@ -29999,8 +32654,10 @@
 
 [section:overload2 buffered_stream::fill (2 of 2 overloads)]
 
+
 Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
+
   std::size_t fill(
       boost::system::error_code & ec);
 
@@ -30013,13 +32670,17 @@
 
 [section:flush buffered_stream::flush]
 
-[indexterm2 flush..buffered_stream] Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+[indexterm2 flush..buffered_stream]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+
 
   std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload1 flush]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload1 more...]]``
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
+
   std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload2 flush]``(
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload2 more...]]``
@@ -30027,8 +32688,10 @@
 
 [section:overload1 buffered_stream::flush (1 of 2 overloads)]
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
+
   std::size_t flush();
 
 
@@ -30039,8 +32702,10 @@
 
 [section:overload2 buffered_stream::flush (2 of 2 overloads)]
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
+
   std::size_t flush(
       boost::system::error_code & ec);
 
@@ -30054,7 +32719,9 @@
 
 [section:get_io_service buffered_stream::get_io_service]
 
-[indexterm2 get_io_service..buffered_stream] Get the io_service associated with the object.
+[indexterm2 get_io_service..buffered_stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -30065,7 +32732,9 @@
 
 [section:in_avail buffered_stream::in_avail]
 
-[indexterm2 in_avail..buffered_stream] Determine the amount of data that may be read without blocking.
+[indexterm2 in_avail..buffered_stream]
+Determine the amount of data that may be read without blocking.
+
 
   std::size_t ``[link boost_asio.reference.buffered_stream.in_avail.overload1 in_avail]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.in_avail.overload1 more...]]``
@@ -30077,8 +32746,10 @@
 
 [section:overload1 buffered_stream::in_avail (1 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail();
 
 
@@ -30089,8 +32760,10 @@
 
 [section:overload2 buffered_stream::in_avail (2 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail(
       boost::system::error_code & ec);
 
@@ -30104,7 +32777,9 @@
 
 [section:io_service buffered_stream::io_service]
 
-[indexterm2 io_service..buffered_stream] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..buffered_stream]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
@@ -30115,21 +32790,27 @@
 
 [section:lowest_layer buffered_stream::lowest_layer]
 
-[indexterm2 lowest_layer..buffered_stream] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..buffered_stream]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 buffered_stream::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
@@ -30140,8 +32821,10 @@
 
 [section:overload2 buffered_stream::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
@@ -30154,7 +32837,9 @@
 
 [section:lowest_layer_type buffered_stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..buffered_stream] The type of the lowest layer.
+[indexterm2 lowest_layer_type..buffered_stream]
+The type of the lowest layer.
+
 
   typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
@@ -30173,7 +32858,9 @@
 
 [section:next_layer buffered_stream::next_layer]
 
-[indexterm2 next_layer..buffered_stream] Get a reference to the next layer.
+[indexterm2 next_layer..buffered_stream]
+Get a reference to the next layer.
+
 
   next_layer_type & next_layer();
 
@@ -30185,7 +32872,9 @@
 
 [section:next_layer_type buffered_stream::next_layer_type]
 
-[indexterm2 next_layer_type..buffered_stream] The type of the next layer.
+[indexterm2 next_layer_type..buffered_stream]
+The type of the next layer.
+
 
   typedef boost::remove_reference< Stream >::type next_layer_type;
 
@@ -30203,7 +32892,9 @@
 
 [section:peek buffered_stream::peek]
 
-[indexterm2 peek..buffered_stream] Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 peek..buffered_stream]
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -30211,8 +32902,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.peek.overload1 more...]]``
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_stream.peek.overload2 peek]``(
@@ -30223,8 +32916,10 @@
 
 [section:overload1 buffered_stream::peek (1 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -30238,8 +32933,10 @@
 
 [section:overload2 buffered_stream::peek (2 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -30255,7 +32952,9 @@
 
 [section:read_some buffered_stream::read_some]
 
-[indexterm2 read_some..buffered_stream] Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 read_some..buffered_stream]
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -30263,8 +32962,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.read_some.overload1 more...]]``
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_stream.read_some.overload2 read_some]``(
@@ -30275,8 +32976,10 @@
 
 [section:overload1 buffered_stream::read_some (1 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -30290,8 +32993,10 @@
 
 [section:overload2 buffered_stream::read_some (2 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -30307,7 +33012,9 @@
 
 [section:write_some buffered_stream::write_some]
 
-[indexterm2 write_some..buffered_stream] Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+[indexterm2 write_some..buffered_stream]
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -30315,8 +33022,10 @@
       const ConstBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.write_some.overload1 more...]]``
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_stream.write_some.overload2 write_some]``(
@@ -30327,8 +33036,10 @@
 
 [section:overload1 buffered_stream::write_some (1 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -30342,8 +33053,10 @@
 
 [section:overload2 buffered_stream::write_some (2 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -30362,8 +33075,10 @@
 
 [section:buffered_write_stream buffered_write_stream]
 
+
 Adds buffering to the write-related operations of a stream.
 
+
   template<
       typename Stream>
   class buffered_write_stream :
@@ -30487,14 +33202,16 @@
 
 ]
 
-The buffered_write_stream class template can be used to add buffering to the synchronous and asynchronous write operations of a stream.
+The [link boost_asio.reference.buffered_write_stream `buffered_write_stream`] class template can be used to add buffering to the synchronous and asynchronous write operations of a stream.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -30506,7 +33223,9 @@
 
 [section:async_flush buffered_write_stream::async_flush]
 
-[indexterm2 async_flush..buffered_write_stream] Start an asynchronous flush.
+[indexterm2 async_flush..buffered_write_stream]
+Start an asynchronous flush.
+
 
   template<
       typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
@@ -30521,7 +33240,9 @@
 
 [section:async_read_some buffered_write_stream::async_read_some]
 
-[indexterm2 async_read_some..buffered_write_stream] Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_read_some..buffered_write_stream]
+Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -30538,7 +33259,9 @@
 
 [section:async_write_some buffered_write_stream::async_write_some]
 
-[indexterm2 async_write_some..buffered_write_stream] Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+[indexterm2 async_write_some..buffered_write_stream]
+Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -30554,11 +33277,13 @@
 
 [section:buffered_write_stream buffered_write_stream::buffered_write_stream]
 
-[indexterm2 buffered_write_stream..buffered_write_stream] Construct, passing the specified argument to initialise the next layer.
+[indexterm2 buffered_write_stream..buffered_write_stream]
+Construct, passing the specified argument to initialise the next layer.
+
 
   template<
       typename Arg>
- ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 buffered_write_stream]``(
+ explicit ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 buffered_write_stream]``(
       Arg & a);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 more...]]``
 
@@ -30572,8 +33297,10 @@
 
 [section:overload1 buffered_write_stream::buffered_write_stream (1 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_write_stream(
@@ -30587,8 +33314,10 @@
 
 [section:overload2 buffered_write_stream::buffered_write_stream (2 of 2 overloads)]
 
+
 Construct, passing the specified argument to initialise the next layer.
 
+
   template<
       typename Arg>
   buffered_write_stream(
@@ -30604,7 +33333,9 @@
 
 [section:close buffered_write_stream::close]
 
-[indexterm2 close..buffered_write_stream] Close the stream.
+[indexterm2 close..buffered_write_stream]
+Close the stream.
+
 
   void ``[link boost_asio.reference.buffered_write_stream.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.close.overload1 more...]]``
@@ -30616,8 +33347,10 @@
 
 [section:overload1 buffered_write_stream::close (1 of 2 overloads)]
 
+
 Close the stream.
 
+
   void close();
 
 
@@ -30628,8 +33361,10 @@
 
 [section:overload2 buffered_write_stream::close (2 of 2 overloads)]
 
+
 Close the stream.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
@@ -30643,7 +33378,9 @@
 
 [section:default_buffer_size buffered_write_stream::default_buffer_size]
 
-[indexterm2 default_buffer_size..buffered_write_stream] The default buffer size.
+[indexterm2 default_buffer_size..buffered_write_stream]
+The default buffer size.
+
 
   static const std::size_t default_buffer_size = implementation_defined;
 
@@ -30654,13 +33391,17 @@
 
 [section:flush buffered_write_stream::flush]
 
-[indexterm2 flush..buffered_write_stream] Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+[indexterm2 flush..buffered_write_stream]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+
 
   std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload1 flush]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload1 more...]]``
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
+
   std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload2 flush]``(
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload2 more...]]``
@@ -30668,8 +33409,10 @@
 
 [section:overload1 buffered_write_stream::flush (1 of 2 overloads)]
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
+
   std::size_t flush();
 
 
@@ -30680,8 +33423,10 @@
 
 [section:overload2 buffered_write_stream::flush (2 of 2 overloads)]
 
+
 Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
+
   std::size_t flush(
       boost::system::error_code & ec);
 
@@ -30695,7 +33440,9 @@
 
 [section:get_io_service buffered_write_stream::get_io_service]
 
-[indexterm2 get_io_service..buffered_write_stream] Get the io_service associated with the object.
+[indexterm2 get_io_service..buffered_write_stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -30706,7 +33453,9 @@
 
 [section:in_avail buffered_write_stream::in_avail]
 
-[indexterm2 in_avail..buffered_write_stream] Determine the amount of data that may be read without blocking.
+[indexterm2 in_avail..buffered_write_stream]
+Determine the amount of data that may be read without blocking.
+
 
   std::size_t ``[link boost_asio.reference.buffered_write_stream.in_avail.overload1 in_avail]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.in_avail.overload1 more...]]``
@@ -30718,8 +33467,10 @@
 
 [section:overload1 buffered_write_stream::in_avail (1 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail();
 
 
@@ -30730,8 +33481,10 @@
 
 [section:overload2 buffered_write_stream::in_avail (2 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail(
       boost::system::error_code & ec);
 
@@ -30745,7 +33498,9 @@
 
 [section:io_service buffered_write_stream::io_service]
 
-[indexterm2 io_service..buffered_write_stream] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..buffered_write_stream]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
@@ -30756,21 +33511,27 @@
 
 [section:lowest_layer buffered_write_stream::lowest_layer]
 
-[indexterm2 lowest_layer..buffered_write_stream] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..buffered_write_stream]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 buffered_write_stream::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
@@ -30781,8 +33542,10 @@
 
 [section:overload2 buffered_write_stream::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
@@ -30795,7 +33558,9 @@
 
 [section:lowest_layer_type buffered_write_stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..buffered_write_stream] The type of the lowest layer.
+[indexterm2 lowest_layer_type..buffered_write_stream]
+The type of the lowest layer.
+
 
   typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
@@ -30814,7 +33579,9 @@
 
 [section:next_layer buffered_write_stream::next_layer]
 
-[indexterm2 next_layer..buffered_write_stream] Get a reference to the next layer.
+[indexterm2 next_layer..buffered_write_stream]
+Get a reference to the next layer.
+
 
   next_layer_type & next_layer();
 
@@ -30826,7 +33593,9 @@
 
 [section:next_layer_type buffered_write_stream::next_layer_type]
 
-[indexterm2 next_layer_type..buffered_write_stream] The type of the next layer.
+[indexterm2 next_layer_type..buffered_write_stream]
+The type of the next layer.
+
 
   typedef boost::remove_reference< Stream >::type next_layer_type;
 
@@ -30844,7 +33613,9 @@
 
 [section:peek buffered_write_stream::peek]
 
-[indexterm2 peek..buffered_write_stream] Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 peek..buffered_write_stream]
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -30852,8 +33623,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.peek.overload1 more...]]``
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_write_stream.peek.overload2 peek]``(
@@ -30864,8 +33637,10 @@
 
 [section:overload1 buffered_write_stream::peek (1 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -30879,8 +33654,10 @@
 
 [section:overload2 buffered_write_stream::peek (2 of 2 overloads)]
 
+
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -30896,7 +33673,9 @@
 
 [section:read_some buffered_write_stream::read_some]
 
-[indexterm2 read_some..buffered_write_stream] Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[indexterm2 read_some..buffered_write_stream]
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -30904,8 +33683,10 @@
       const MutableBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.read_some.overload1 more...]]``
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_write_stream.read_some.overload2 read_some]``(
@@ -30916,8 +33697,10 @@
 
 [section:overload1 buffered_write_stream::read_some (1 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -30931,8 +33714,10 @@
 
 [section:overload2 buffered_write_stream::read_some (2 of 2 overloads)]
 
+
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -30948,7 +33733,9 @@
 
 [section:write_some buffered_write_stream::write_some]
 
-[indexterm2 write_some..buffered_write_stream] Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+[indexterm2 write_some..buffered_write_stream]
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -30956,8 +33743,10 @@
       const ConstBufferSequence & buffers);
   `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.write_some.overload1 more...]]``
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t ``[link boost_asio.reference.buffered_write_stream.write_some.overload2 write_some]``(
@@ -30968,8 +33757,10 @@
 
 [section:overload1 buffered_write_stream::write_some (1 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -30983,8 +33774,10 @@
 
 [section:overload2 buffered_write_stream::write_some (2 of 2 overloads)]
 
+
 Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -31004,7 +33797,9 @@
 
 [section:buffers_begin buffers_begin]
 
-[indexterm1 buffers_begin] Construct an iterator representing the beginning of the buffers' data.
+[indexterm1 buffers_begin]
+Construct an iterator representing the beginning of the buffers' data.
+
 
   template<
       typename BufferSequence>
@@ -31025,7 +33820,9 @@
 
 [section:buffers_end buffers_end]
 
-[indexterm1 buffers_end] Construct an iterator representing the end of the buffers' data.
+[indexterm1 buffers_end]
+Construct an iterator representing the end of the buffers' data.
+
 
   template<
       typename BufferSequence>
@@ -31045,8 +33842,10 @@
 
 [section:buffers_iterator buffers_iterator]
 
+
 A random access iterator over the bytes in a buffer sequence.
 
+
   template<
       typename BufferSequence,
       typename ByteType = char>
@@ -31083,7 +33882,9 @@
 
 [section:begin buffers_iterator::begin]
 
-[indexterm2 begin..buffers_iterator] Construct an iterator representing the beginning of the buffers' data.
+[indexterm2 begin..buffers_iterator]
+Construct an iterator representing the beginning of the buffers' data.
+
 
   static buffers_iterator begin(
       const BufferSequence & buffers);
@@ -31096,7 +33897,9 @@
 
 [section:buffers_iterator buffers_iterator::buffers_iterator]
 
-[indexterm2 buffers_iterator..buffers_iterator] Default constructor. Creates an iterator in an undefined state.
+[indexterm2 buffers_iterator..buffers_iterator]
+Default constructor. Creates an iterator in an undefined state.
+
 
   buffers_iterator();
 
@@ -31108,7 +33911,9 @@
 
 [section:end buffers_iterator::end]
 
-[indexterm2 end..buffers_iterator] Construct an iterator representing the end of the buffers' data.
+[indexterm2 end..buffers_iterator]
+Construct an iterator representing the end of the buffers' data.
+
 
   static buffers_iterator end(
       const BufferSequence & buffers);
@@ -31123,8 +33928,10 @@
 
 [section:const_buffer const_buffer]
 
+
 Holds a buffer that cannot be modified.
 
+
   class const_buffer
 
 
@@ -31164,7 +33971,7 @@
   
 ]
 
-The const_buffer class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
+The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 [heading Requirements]
 
@@ -31175,7 +33982,9 @@
 
 [section:buffer_cast const_buffer::buffer_cast]
 
-[indexterm2 buffer_cast..const_buffer] Cast a non-modifiable buffer to a specified pointer to POD type.
+[indexterm2 buffer_cast..const_buffer]
+Cast a non-modifiable buffer to a specified pointer to POD type.
+
 
   template<
       typename PointerToPodType>
@@ -31190,7 +33999,9 @@
 
 [section:buffer_size const_buffer::buffer_size]
 
-[indexterm2 buffer_size..const_buffer] Get the number of bytes in a non-modifiable buffer.
+[indexterm2 buffer_size..const_buffer]
+Get the number of bytes in a non-modifiable buffer.
+
 
   std::size_t buffer_size(
       const const_buffer & b);
@@ -31202,20 +34013,26 @@
 
 [section:const_buffer const_buffer::const_buffer]
 
-[indexterm2 const_buffer..const_buffer] Construct an empty buffer.
+[indexterm2 const_buffer..const_buffer]
+Construct an empty buffer.
+
 
   ``[link boost_asio.reference.const_buffer.const_buffer.overload1 const_buffer]``();
   `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload1 more...]]``
 
+
 Construct a buffer to represent a given memory range.
 
+
   ``[link boost_asio.reference.const_buffer.const_buffer.overload2 const_buffer]``(
       const void * data,
       std::size_t size);
   `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload2 more...]]``
 
+
 Construct a non-modifiable buffer from a modifiable one.
 
+
   ``[link boost_asio.reference.const_buffer.const_buffer.overload3 const_buffer]``(
       const mutable_buffer & b);
   `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload3 more...]]``
@@ -31223,8 +34040,10 @@
 
 [section:overload1 const_buffer::const_buffer (1 of 3 overloads)]
 
+
 Construct an empty buffer.
 
+
   const_buffer();
 
 
@@ -31235,8 +34054,10 @@
 
 [section:overload2 const_buffer::const_buffer (2 of 3 overloads)]
 
+
 Construct a buffer to represent a given memory range.
 
+
   const_buffer(
       const void * data,
       std::size_t size);
@@ -31249,8 +34070,10 @@
 
 [section:overload3 const_buffer::const_buffer (3 of 3 overloads)]
 
+
 Construct a non-modifiable buffer from a modifiable one.
 
+
   const_buffer(
       const mutable_buffer & b);
 
@@ -31263,7 +34086,9 @@
 
 [section:operator_plus_ const_buffer::operator+]
 
-[indexterm2 operator+..const_buffer] Create a new non-modifiable buffer that is offset from the start of another.
+[indexterm2 operator+..const_buffer]
+Create a new non-modifiable buffer that is offset from the start of another.
+
 
   const_buffer ``[link boost_asio.reference.const_buffer.operator_plus_.overload1 operator+]``(
       const const_buffer & b,
@@ -31278,8 +34103,10 @@
 
 [section:overload1 const_buffer::operator+ (1 of 2 overloads)]
 
+
 Create a new non-modifiable buffer that is offset from the start of another.
 
+
   const_buffer operator+(
       const const_buffer & b,
       std::size_t start);
@@ -31292,8 +34119,10 @@
 
 [section:overload2 const_buffer::operator+ (2 of 2 overloads)]
 
+
 Create a new non-modifiable buffer that is offset from the start of another.
 
+
   const_buffer operator+(
       std::size_t start,
       const const_buffer & b);
@@ -31310,8 +34139,10 @@
 
 [section:const_buffers_1 const_buffers_1]
 
+
 Adapts a single non-modifiable buffer so that it meets the requirements of the ConstBufferSequence concept.
 
+
   class const_buffers_1 :
     public const_buffer
 
@@ -31389,7 +34220,9 @@
 
 [section:begin const_buffers_1::begin]
 
-[indexterm2 begin..const_buffers_1] Get a random-access iterator to the first element.
+[indexterm2 begin..const_buffers_1]
+Get a random-access iterator to the first element.
+
 
   const_iterator begin() const;
 
@@ -31404,7 +34237,9 @@
 
 ['Inherited from const_buffer.]
 
-[indexterm2 buffer_cast..const_buffers_1] Cast a non-modifiable buffer to a specified pointer to POD type.
+[indexterm2 buffer_cast..const_buffers_1]
+Cast a non-modifiable buffer to a specified pointer to POD type.
+
 
   template<
       typename PointerToPodType>
@@ -31422,7 +34257,9 @@
 
 ['Inherited from const_buffer.]
 
-[indexterm2 buffer_size..const_buffers_1] Get the number of bytes in a non-modifiable buffer.
+[indexterm2 buffer_size..const_buffers_1]
+Get the number of bytes in a non-modifiable buffer.
+
 
   std::size_t buffer_size(
       const const_buffer & b);
@@ -31434,24 +34271,30 @@
 
 [section:const_buffers_1 const_buffers_1::const_buffers_1]
 
-[indexterm2 const_buffers_1..const_buffers_1] Construct to represent a given memory range.
+[indexterm2 const_buffers_1..const_buffers_1]
+Construct to represent a given memory range.
+
 
   ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 const_buffers_1]``(
       const void * data,
       std::size_t size);
   `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 more...]]``
 
+
 Construct to represent a single non-modifiable buffer.
 
- ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 const_buffers_1]``(
+
+ explicit ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 const_buffers_1]``(
       const const_buffer & b);
   `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 more...]]``
 
 
 [section:overload1 const_buffers_1::const_buffers_1 (1 of 2 overloads)]
 
+
 Construct to represent a given memory range.
 
+
   const_buffers_1(
       const void * data,
       std::size_t size);
@@ -31464,8 +34307,10 @@
 
 [section:overload2 const_buffers_1::const_buffers_1 (2 of 2 overloads)]
 
+
 Construct to represent a single non-modifiable buffer.
 
+
   const_buffers_1(
       const const_buffer & b);
 
@@ -31479,7 +34324,9 @@
 
 [section:const_iterator const_buffers_1::const_iterator]
 
-[indexterm2 const_iterator..const_buffers_1] A random-access iterator type that may be used to read elements.
+[indexterm2 const_iterator..const_buffers_1]
+A random-access iterator type that may be used to read elements.
+
 
   typedef const const_buffer * const_iterator;
 
@@ -31498,7 +34345,9 @@
 
 [section:end const_buffers_1::end]
 
-[indexterm2 end..const_buffers_1] Get a random-access iterator for one past the last element.
+[indexterm2 end..const_buffers_1]
+Get a random-access iterator for one past the last element.
+
 
   const_iterator end() const;
 
@@ -31509,7 +34358,9 @@
 
 [section:operator_plus_ const_buffers_1::operator+]
 
-[indexterm2 operator+..const_buffers_1] Create a new non-modifiable buffer that is offset from the start of another.
+[indexterm2 operator+..const_buffers_1]
+Create a new non-modifiable buffer that is offset from the start of another.
+
 
   const_buffer ``[link boost_asio.reference.const_buffers_1.operator_plus_.overload1 operator+]``(
       const const_buffer & b,
@@ -31527,8 +34378,10 @@
 
 ['Inherited from const_buffer.]
 
+
 Create a new non-modifiable buffer that is offset from the start of another.
 
+
   const_buffer operator+(
       const const_buffer & b,
       std::size_t start);
@@ -31544,8 +34397,10 @@
 
 ['Inherited from const_buffer.]
 
+
 Create a new non-modifiable buffer that is offset from the start of another.
 
+
   const_buffer operator+(
       std::size_t start,
       const const_buffer & b);
@@ -31560,7 +34415,9 @@
 
 [section:value_type const_buffers_1::value_type]
 
-[indexterm2 value_type..const_buffers_1] The type for each element in the list of buffers.
+[indexterm2 value_type..const_buffers_1]
+The type for each element in the list of buffers.
+
 
   typedef const_buffer value_type;
 
@@ -31601,7 +34458,7 @@
   
 ]
 
-The const_buffer class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
+The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
 [heading Requirements]
@@ -31619,8 +34476,10 @@
 
 [section:datagram_socket_service datagram_socket_service]
 
+
 Default service implementation for a datagram socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``>
   class datagram_socket_service :
@@ -31842,7 +34701,9 @@
 
 [section:assign datagram_socket_service::assign]
 
-[indexterm2 assign..datagram_socket_service] Assign an existing native socket to a datagram socket.
+[indexterm2 assign..datagram_socket_service]
+Assign an existing native socket to a datagram socket.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -31858,7 +34719,9 @@
 
 [section:async_connect datagram_socket_service::async_connect]
 
-[indexterm2 async_connect..datagram_socket_service] Start an asynchronous connect.
+[indexterm2 async_connect..datagram_socket_service]
+Start an asynchronous connect.
+
 
   template<
       typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
@@ -31875,7 +34738,9 @@
 
 [section:async_receive datagram_socket_service::async_receive]
 
-[indexterm2 async_receive..datagram_socket_service] Start an asynchronous receive.
+[indexterm2 async_receive..datagram_socket_service]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -31894,7 +34759,9 @@
 
 [section:async_receive_from datagram_socket_service::async_receive_from]
 
-[indexterm2 async_receive_from..datagram_socket_service] Start an asynchronous receive that will get the endpoint of the sender.
+[indexterm2 async_receive_from..datagram_socket_service]
+Start an asynchronous receive that will get the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -31914,7 +34781,9 @@
 
 [section:async_send datagram_socket_service::async_send]
 
-[indexterm2 async_send..datagram_socket_service] Start an asynchronous send.
+[indexterm2 async_send..datagram_socket_service]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -31933,7 +34802,9 @@
 
 [section:async_send_to datagram_socket_service::async_send_to]
 
-[indexterm2 async_send_to..datagram_socket_service] Start an asynchronous send.
+[indexterm2 async_send_to..datagram_socket_service]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -31953,7 +34824,9 @@
 
 [section:at_mark datagram_socket_service::at_mark]
 
-[indexterm2 at_mark..datagram_socket_service] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..datagram_socket_service]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool at_mark(
       const implementation_type & impl,
@@ -31967,7 +34840,9 @@
 
 [section:available datagram_socket_service::available]
 
-[indexterm2 available..datagram_socket_service] Determine the number of bytes available for reading.
+[indexterm2 available..datagram_socket_service]
+Determine the number of bytes available for reading.
+
 
   std::size_t available(
       const implementation_type & impl,
@@ -31996,7 +34871,9 @@
 
 [section:cancel datagram_socket_service::cancel]
 
-[indexterm2 cancel..datagram_socket_service] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..datagram_socket_service]
+Cancel all asynchronous operations associated with the socket.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -32010,7 +34887,9 @@
 
 [section:close datagram_socket_service::close]
 
-[indexterm2 close..datagram_socket_service] Close a datagram socket implementation.
+[indexterm2 close..datagram_socket_service]
+Close a datagram socket implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -32024,7 +34903,9 @@
 
 [section:connect datagram_socket_service::connect]
 
-[indexterm2 connect..datagram_socket_service] Connect the datagram socket to the specified endpoint.
+[indexterm2 connect..datagram_socket_service]
+Connect the datagram socket to the specified endpoint.
+
 
   boost::system::error_code connect(
       implementation_type & impl,
@@ -32039,7 +34920,9 @@
 
 [section:construct datagram_socket_service::construct]
 
-[indexterm2 construct..datagram_socket_service] Construct a new datagram socket implementation.
+[indexterm2 construct..datagram_socket_service]
+Construct a new datagram socket implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -32052,7 +34935,9 @@
 
 [section:datagram_socket_service datagram_socket_service::datagram_socket_service]
 
-[indexterm2 datagram_socket_service..datagram_socket_service] Construct a new datagram socket service for the specified io_service.
+[indexterm2 datagram_socket_service..datagram_socket_service]
+Construct a new datagram socket service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   datagram_socket_service(
       boost::asio::io_service & io_service);
@@ -32065,7 +34950,9 @@
 
 [section:destroy datagram_socket_service::destroy]
 
-[indexterm2 destroy..datagram_socket_service] Destroy a datagram socket implementation.
+[indexterm2 destroy..datagram_socket_service]
+Destroy a datagram socket implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -32078,7 +34965,9 @@
 
 [section:endpoint_type datagram_socket_service::endpoint_type]
 
-[indexterm2 endpoint_type..datagram_socket_service] The endpoint type.
+[indexterm2 endpoint_type..datagram_socket_service]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -32100,7 +34989,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..datagram_socket_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..datagram_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -32112,7 +35003,9 @@
 
 [section:get_option datagram_socket_service::get_option]
 
-[indexterm2 get_option..datagram_socket_service] Get a socket option.
+[indexterm2 get_option..datagram_socket_service]
+Get a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -32129,7 +35022,9 @@
 
 [section:id datagram_socket_service::id]
 
-[indexterm2 id..datagram_socket_service] The unique service identifier.
+[indexterm2 id..datagram_socket_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -32141,7 +35036,9 @@
 
 [section:implementation_type datagram_socket_service::implementation_type]
 
-[indexterm2 implementation_type..datagram_socket_service] The type of a datagram socket.
+[indexterm2 implementation_type..datagram_socket_service]
+The type of a datagram socket.
+
 
   typedef implementation_defined implementation_type;
 
@@ -32160,7 +35057,9 @@
 
 [section:io_control datagram_socket_service::io_control]
 
-[indexterm2 io_control..datagram_socket_service] Perform an IO control command on the socket.
+[indexterm2 io_control..datagram_socket_service]
+Perform an IO control command on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -32180,7 +35079,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..datagram_socket_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..datagram_socket_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -32192,7 +35093,9 @@
 
 [section:is_open datagram_socket_service::is_open]
 
-[indexterm2 is_open..datagram_socket_service] Determine whether the socket is open.
+[indexterm2 is_open..datagram_socket_service]
+Determine whether the socket is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -32205,7 +35108,9 @@
 
 [section:local_endpoint datagram_socket_service::local_endpoint]
 
-[indexterm2 local_endpoint..datagram_socket_service] Get the local endpoint.
+[indexterm2 local_endpoint..datagram_socket_service]
+Get the local endpoint.
+
 
   endpoint_type local_endpoint(
       const implementation_type & impl,
@@ -32219,7 +35124,9 @@
 
 [section:native datagram_socket_service::native]
 
-[indexterm2 native..datagram_socket_service] Get the native socket implementation.
+[indexterm2 native..datagram_socket_service]
+Get the native socket implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -32232,7 +35139,9 @@
 
 [section:native_type datagram_socket_service::native_type]
 
-[indexterm2 native_type..datagram_socket_service] The native socket type.
+[indexterm2 native_type..datagram_socket_service]
+The native socket type.
+
 
   typedef implementation_defined native_type;
 
@@ -32266,7 +35175,9 @@
 
 [section:protocol_type datagram_socket_service::protocol_type]
 
-[indexterm2 protocol_type..datagram_socket_service] The protocol type.
+[indexterm2 protocol_type..datagram_socket_service]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -32285,7 +35196,9 @@
 
 [section:receive datagram_socket_service::receive]
 
-[indexterm2 receive..datagram_socket_service] Receive some data from the peer.
+[indexterm2 receive..datagram_socket_service]
+Receive some data from the peer.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -32303,7 +35216,9 @@
 
 [section:receive_from datagram_socket_service::receive_from]
 
-[indexterm2 receive_from..datagram_socket_service] Receive a datagram with the endpoint of the sender.
+[indexterm2 receive_from..datagram_socket_service]
+Receive a datagram with the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -32322,7 +35237,9 @@
 
 [section:remote_endpoint datagram_socket_service::remote_endpoint]
 
-[indexterm2 remote_endpoint..datagram_socket_service] Get the remote endpoint.
+[indexterm2 remote_endpoint..datagram_socket_service]
+Get the remote endpoint.
+
 
   endpoint_type remote_endpoint(
       const implementation_type & impl,
@@ -32336,7 +35253,9 @@
 
 [section:send datagram_socket_service::send]
 
-[indexterm2 send..datagram_socket_service] Send the given data to the peer.
+[indexterm2 send..datagram_socket_service]
+Send the given data to the peer.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -32354,7 +35273,9 @@
 
 [section:send_to datagram_socket_service::send_to]
 
-[indexterm2 send_to..datagram_socket_service] Send a datagram to the specified endpoint.
+[indexterm2 send_to..datagram_socket_service]
+Send a datagram to the specified endpoint.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -32373,7 +35294,9 @@
 
 [section:set_option datagram_socket_service::set_option]
 
-[indexterm2 set_option..datagram_socket_service] Set a socket option.
+[indexterm2 set_option..datagram_socket_service]
+Set a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -32390,7 +35313,9 @@
 
 [section:shutdown datagram_socket_service::shutdown]
 
-[indexterm2 shutdown..datagram_socket_service] Disable sends or receives on the socket.
+[indexterm2 shutdown..datagram_socket_service]
+Disable sends or receives on the socket.
+
 
   boost::system::error_code shutdown(
       implementation_type & impl,
@@ -32405,7 +35330,9 @@
 
 [section:shutdown_service datagram_socket_service::shutdown_service]
 
-[indexterm2 shutdown_service..datagram_socket_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..datagram_socket_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -32420,7 +35347,9 @@
 
 [section:deadline_timer deadline_timer]
 
-[indexterm1 deadline_timer] Typedef for the typical usage of timer.
+[indexterm1 deadline_timer]
+Typedef for the typical usage of timer.
+
 
   typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
 
@@ -32536,16 +35465,19 @@
 
 ]
 
-The basic_deadline_timer class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
+The [link boost_asio.reference.basic_deadline_timer `basic_deadline_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
-Most applications will use the boost::asio::deadline\_timer typedef.
+A deadline timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
+
+Most applications will use the `boost::asio::deadline_timer` typedef.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Examples]
   
@@ -32563,6 +35495,7 @@
 
 
 
+
 Performing an asynchronous wait:
 
    void handler(const boost::system::error_code& error)
@@ -32585,6 +35518,7 @@
 
 
 
+
 [heading Changing an active deadline_timer's expiry time]
   
 
@@ -32620,10 +35554,12 @@
 
 * The boost::asio::basic_deadline_timer::expires_from_now() function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
+
 * If a wait handler is cancelled, the boost::system::error_code passed to it contains the value boost::asio::error::operation_aborted.
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/deadline_timer.hpp]
@@ -32636,8 +35572,10 @@
 
 [section:deadline_timer_service deadline_timer_service]
 
+
 Default service implementation for a timer.
 
+
   template<
       typename TimeType,
       typename ``[link boost_asio.reference.TimeTraits TimeTraits]`` = boost::asio::time_traits<TimeType>>
@@ -32780,7 +35718,9 @@
 
 [section:cancel deadline_timer_service::cancel]
 
-[indexterm2 cancel..deadline_timer_service] Cancel any asynchronous wait operations associated with the timer.
+[indexterm2 cancel..deadline_timer_service]
+Cancel any asynchronous wait operations associated with the timer.
+
 
   std::size_t cancel(
       implementation_type & impl,
@@ -32794,7 +35734,9 @@
 
 [section:construct deadline_timer_service::construct]
 
-[indexterm2 construct..deadline_timer_service] Construct a new timer implementation.
+[indexterm2 construct..deadline_timer_service]
+Construct a new timer implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -32807,7 +35749,9 @@
 
 [section:deadline_timer_service deadline_timer_service::deadline_timer_service]
 
-[indexterm2 deadline_timer_service..deadline_timer_service] Construct a new timer service for the specified io_service.
+[indexterm2 deadline_timer_service..deadline_timer_service]
+Construct a new timer service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   deadline_timer_service(
       boost::asio::io_service & io_service);
@@ -32820,7 +35764,9 @@
 
 [section:destroy deadline_timer_service::destroy]
 
-[indexterm2 destroy..deadline_timer_service] Destroy a timer implementation.
+[indexterm2 destroy..deadline_timer_service]
+Destroy a timer implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -32833,7 +35779,9 @@
 
 [section:duration_type deadline_timer_service::duration_type]
 
-[indexterm2 duration_type..deadline_timer_service] The duration type.
+[indexterm2 duration_type..deadline_timer_service]
+The duration type.
+
 
   typedef traits_type::duration_type duration_type;
 
@@ -32851,14 +35799,18 @@
 
 [section:expires_at deadline_timer_service::expires_at]
 
-[indexterm2 expires_at..deadline_timer_service] Get the expiry time for the timer as an absolute time.
+[indexterm2 expires_at..deadline_timer_service]
+Get the expiry time for the timer as an absolute time.
+
 
   time_type ``[link boost_asio.reference.deadline_timer_service.expires_at.overload1 expires_at]``(
       const implementation_type & impl) const;
   `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_at.overload1 more...]]``
 
+
 Set the expiry time for the timer as an absolute time.
 
+
   std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_at.overload2 expires_at]``(
       implementation_type & impl,
       const time_type & expiry_time,
@@ -32868,8 +35820,10 @@
 
 [section:overload1 deadline_timer_service::expires_at (1 of 2 overloads)]
 
+
 Get the expiry time for the timer as an absolute time.
 
+
   time_type expires_at(
       const implementation_type & impl) const;
 
@@ -32881,8 +35835,10 @@
 
 [section:overload2 deadline_timer_service::expires_at (2 of 2 overloads)]
 
+
 Set the expiry time for the timer as an absolute time.
 
+
   std::size_t expires_at(
       implementation_type & impl,
       const time_type & expiry_time,
@@ -32897,14 +35853,18 @@
 
 [section:expires_from_now deadline_timer_service::expires_from_now]
 
-[indexterm2 expires_from_now..deadline_timer_service] Get the expiry time for the timer relative to now.
+[indexterm2 expires_from_now..deadline_timer_service]
+Get the expiry time for the timer relative to now.
+
 
   duration_type ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 expires_from_now]``(
       const implementation_type & impl) const;
   `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 more...]]``
 
+
 Set the expiry time for the timer relative to now.
 
+
   std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload2 expires_from_now]``(
       implementation_type & impl,
       const duration_type & expiry_time,
@@ -32914,8 +35874,10 @@
 
 [section:overload1 deadline_timer_service::expires_from_now (1 of 2 overloads)]
 
+
 Get the expiry time for the timer relative to now.
 
+
   duration_type expires_from_now(
       const implementation_type & impl) const;
 
@@ -32927,8 +35889,10 @@
 
 [section:overload2 deadline_timer_service::expires_from_now (2 of 2 overloads)]
 
+
 Set the expiry time for the timer relative to now.
 
+
   std::size_t expires_from_now(
       implementation_type & impl,
       const duration_type & expiry_time,
@@ -32947,7 +35911,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..deadline_timer_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..deadline_timer_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -32959,7 +35925,9 @@
 
 [section:id deadline_timer_service::id]
 
-[indexterm2 id..deadline_timer_service] The unique service identifier.
+[indexterm2 id..deadline_timer_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -32971,7 +35939,9 @@
 
 [section:implementation_type deadline_timer_service::implementation_type]
 
-[indexterm2 implementation_type..deadline_timer_service] The implementation type of the deadline timer.
+[indexterm2 implementation_type..deadline_timer_service]
+The implementation type of the deadline timer.
+
 
   typedef implementation_defined implementation_type;
 
@@ -32993,7 +35963,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..deadline_timer_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..deadline_timer_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -33005,7 +35977,9 @@
 
 [section:shutdown_service deadline_timer_service::shutdown_service]
 
-[indexterm2 shutdown_service..deadline_timer_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..deadline_timer_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -33017,7 +35991,9 @@
 
 [section:time_type deadline_timer_service::time_type]
 
-[indexterm2 time_type..deadline_timer_service] The time type.
+[indexterm2 time_type..deadline_timer_service]
+The time type.
+
 
   typedef traits_type::time_type time_type;
 
@@ -33036,7 +36012,9 @@
 
 [section:traits_type deadline_timer_service::traits_type]
 
-[indexterm2 traits_type..deadline_timer_service] The time traits type.
+[indexterm2 traits_type..deadline_timer_service]
+The time traits type.
+
 
   typedef TimeTraits traits_type;
 
@@ -33729,7 +36707,7 @@
       io_service & ios);
 
 
-This function is used to determine whether the io_service contains a service object corresponding to the given service type.
+This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
 
 [heading Parameters]
@@ -33737,13 +36715,15 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
+
 [heading Return Value]
       
-A boolean indicating whether the io_service contains the service.
+A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
+
 
 
 [heading Requirements]
@@ -33758,7 +36738,9 @@
 
 [section:invalid_service_owner invalid_service_owner]
 
-Exception thrown when trying to add a service object to an io_service where the service has a different owner.
+
+Exception thrown when trying to add a service object to an [link boost_asio.reference.io_service `io_service`] where the service has a different owner.
+
 
   class invalid_service_owner
 
@@ -33797,8 +36779,10 @@
 
 [section:io_service io_service]
 
+
 Provides core I/O functionality.
 
+
   class io_service :
     noncopyable
 
@@ -33853,12 +36837,12 @@
   
   [
     [[link boost_asio.reference.io_service.poll [*poll]]]
- [Run the io_service's event processing loop to execute ready handlers. ]
+ [Run the io_service object's event processing loop to execute ready handlers. ]
   ]
   
   [
     [[link boost_asio.reference.io_service.poll_one [*poll_one]]]
- [Run the io_service's event processing loop to execute one ready handler. ]
+ [Run the io_service object's event processing loop to execute one ready handler. ]
   ]
   
   [
@@ -33873,17 +36857,17 @@
   
   [
     [[link boost_asio.reference.io_service.run [*run]]]
- [Run the io_service's event processing loop. ]
+ [Run the io_service object's event processing loop. ]
   ]
   
   [
     [[link boost_asio.reference.io_service.run_one [*run_one]]]
- [Run the io_service's event processing loop to execute at most one handler. ]
+ [Run the io_service object's event processing loop to execute at most one handler. ]
   ]
   
   [
     [[link boost_asio.reference.io_service.stop [*stop]]]
- [Stop the io_service's event processing loop. ]
+ [Stop the io_service object's event processing loop. ]
   ]
   
   [
@@ -33919,33 +36903,42 @@
   
 ]
 
-The io_service class provides the core I/O functionality for users of the asynchronous I/O objects, including:
+The [link boost_asio.reference.io_service `io_service`] class provides the core I/O functionality for users of the asynchronous I/O objects, including:
 
 
-* boost::asio::ip::tcp::socket
+* boost::asio::ip::tcp::socket
 
-* boost::asio::ip::tcp::acceptor
+* boost::asio::ip::tcp::acceptor
 
-* boost::asio::ip::udp::socket
+* boost::asio::ip::udp::socket
 
 * boost::asio::deadline_timer.
 
-The io_service class also includes facilities intended for developers of custom asynchronous services.
+The [link boost_asio.reference.io_service `io_service`] class also includes facilities intended for developers of custom asynchronous services.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe, with the exception that calling `reset()` while there are unfinished `run()`, `run_one()`, `poll()` or `poll_one()` calls results in undefined behaviour.
+
+
+
+[heading Synchronous and asynchronous operations]
+
+
+
+Synchronous operations on I/O objects implicitly run the [link boost_asio.reference.io_service `io_service`] object for an individual operation. The [link boost_asio.reference.io_service `io_service`] functions `run()`, `run_one()`, `poll()` or `poll_one()` must be called for the [link boost_asio.reference.io_service `io_service`] to perform asynchronous operations on behalf of a C++ program. Notification that an asynchronous operation has completed is delivered by invocation of the associated handler. Handlers are invoked only by a thread that is currently calling any overload of `run()`, `run_one()`, `poll()` or `poll_one()` for the [link boost_asio.reference.io_service `io_service`].
 
-[*Shared] [*objects:] Safe, with the exception that calling reset() while there are unfinished run() calls results in undefined behaviour.
 
 [heading Effect of exceptions thrown from handlers]
   
 
 
-If an exception is thrown from a handler, the exception is allowed to propagate through the throwing thread's invocation of boost::asio::io\_service::run(), boost::asio::io\_service::run\_one(), boost::asio::io\_service::poll() or boost::asio::io\_service::poll\_one(). No other threads that are calling any of these functions are affected. It is then the responsibility of the application to catch the exception.
+If an exception is thrown from a handler, the exception is allowed to propagate through the throwing thread's invocation of `run()`, `run_one()`, `poll()` or `poll_one()`. No other threads that are calling any of these functions are affected. It is then the responsibility of the application to catch the exception.
 
-After the exception has been caught, the boost::asio::io\_service::run(), boost::asio::io\_service::run\_one(), boost::asio::io\_service::poll() or boost::asio::io\_service::poll\_one() call may be restarted [*without] the need for an intervening call to boost::asio::io\_service::reset(). This allows the thread to rejoin the io\_service's thread pool without impacting any other threads in the pool.
+After the exception has been caught, the `run()`, `run_one()`, `poll()` or `poll_one()` call may be restarted [*without] the need for an intervening call to `reset()`. This allows the thread to rejoin the [link boost_asio.reference.io_service `io_service`] object's thread pool without impacting any other threads in the pool.
 
 For example:
 
@@ -33974,8 +36967,7 @@
   
 
 
-Some applications may need to prevent an io\_service's run() call from returning when there is no more work to do. For example, the io_service may be being run in a background thread that is launched prior to the application's asynchronous operations. The run() call may be kept running by creating an object of type
-[link boost_asio.reference.io_service__work io_service::work]:
+Some applications may need to prevent an [link boost_asio.reference.io_service `io_service`] object's `run()` call from returning when there is no more work to do. For example, the [link boost_asio.reference.io_service `io_service`] may be being run in a background thread that is launched prior to the application's asynchronous operations. The `run()` call may be kept running by creating an object of type [link boost_asio.reference.io_service__work `io_service::work`]:
 
 
 
@@ -33986,7 +36978,7 @@
 
 
 
-To effect a shutdown, the application will then need to call the io\_service's stop() member function. This will cause the io_servicerun() call to return as soon as possible, abandoning unfinished operations and without permitting ready handlers to be dispatched.
+To effect a shutdown, the application will then need to call the [link boost_asio.reference.io_service `io_service`] object's `stop()` member function. This will cause the [link boost_asio.reference.io_service `io_service`] `run()` call to return as soon as possible, abandoning unfinished operations and without permitting ready handlers to be dispatched.
 
 Alternatively, if the application requires that all operations and handlers be allowed to finish normally, the work object may be explicitly destroyed.
 
@@ -34001,6 +36993,25 @@
 
 
 
+
+[heading The io_service class and I/O services]
+
+
+
+Class [link boost_asio.reference.io_service `io_service`] implements an extensible, type-safe, polymorphic set of I/O services, indexed by service type. An object of class [link boost_asio.reference.io_service `io_service`] must be initialised before I/O objects such as sockets, resolvers and timers can be used. These I/O objects are distinguished by having constructors that accept an `io_service&` parameter.
+
+I/O services exist to manage the logical interface to the operating system on behalf of the I/O objects. In particular, there are resources that are shared across a class of I/O objects. For example, timers may be implemented in terms of a single timer queue. The I/O services manage these shared resources.
+
+Access to the services of an [link boost_asio.reference.io_service `io_service`] is via three function templates, `use_service()`, `add_service()` and `has_service()`.
+
+In a call to `use_service<Service>()`, the type argument chooses a service, making available all members of the named type. If `Service` is not present in an [link boost_asio.reference.io_service `io_service`], an object of type `Service` is created and added to the [link boost_asio.reference.io_service `io_service`]. A C++ program can check if an [link boost_asio.reference.io_service `io_service`] implements a particular service with the function template `has_service<Service>()`.
+
+Service objects may be explicitly added to an [link boost_asio.reference.io_service `io_service`] using the function template `add_service<Service>()`. If the `Service` is already present, the [link boost_asio.reference.service_already_exists `service_already_exists`] exception is thrown. If the owner of the service is not the same object as the [link boost_asio.reference.io_service `io_service`] parameter, the [link boost_asio.reference.invalid_service_owner `invalid_service_owner`] exception is thrown.
+
+Once a service reference is obtained from an [link boost_asio.reference.io_service `io_service`] object by calling `use_service()`, that reference remains usable as long as the owning [link boost_asio.reference.io_service `io_service`] object exists.
+
+All I/O service implementations have [link boost_asio.reference.io_service__service `io_service::service`] as a public base class. Custom I/O services may be implemented by deriving from this class and then added to an [link boost_asio.reference.io_service `io_service`] using the facilities described above.
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/io_service.hpp]
@@ -34010,7 +37021,9 @@
 
 [section:add_service io_service::add_service]
 
-[indexterm2 add_service..io_service] Add a service object to the io_service.
+[indexterm2 add_service..io_service]
+Add a service object to the [link boost_asio.reference.io_service `io_service`].
+
 
   template<
       typename ``[link boost_asio.reference.Service Service]``>
@@ -34019,7 +37032,7 @@
       Service * svc);
 
 
-This function is used to add a service to the io_service.
+This function is used to add a service to the [link boost_asio.reference.io_service `io_service`].
 
 
 [heading Parameters]
@@ -34027,9 +37040,9 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `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:
+[[svc][The service object. On success, ownership of the service object is transferred to the [link boost_asio.reference.io_service `io_service`]. When the [link boost_asio.reference.io_service `io_service`] object is destroyed, it will destroy the service object by performing:
 ``
    delete static_cast<io_service::service*>(svc)
 ``
@@ -34037,18 +37050,20 @@
 
 ]
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the io\_service.]]
+[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the [link boost_asio.reference.io_service `io_service`].]]
 
-[[boost::asio::invalid_service_owner][Thrown if the service's owning io\_service is not the io\_service object specified by the ios parameter. ]]
+[[boost::asio::invalid_service_owner][Thrown if the service's owning [link boost_asio.reference.io_service `io_service`] is not the [link boost_asio.reference.io_service `io_service`] object specified by the ios parameter. ]]
 
 ]
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/io_service.hpp]
@@ -34062,7 +37077,9 @@
 
 [section:dispatch io_service::dispatch]
 
-[indexterm2 dispatch..io_service] Request the io_service to invoke the given handler.
+[indexterm2 dispatch..io_service]
+Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler.
+
 
   template<
       typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
@@ -34070,9 +37087,9 @@
       CompletionHandler handler);
 
 
-This function is used to ask the io_service to execute the given handler.
+This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler.
 
-The io_service guarantees that the handler will only be called in a thread in which the run(), run\_one(), poll() or poll\_one() member functions is currently being invoked. The handler may be executed inside this function if the guarantee can be met.
+The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked. The handler may be executed inside this function if the guarantee can be met.
 
 
 [heading Parameters]
@@ -34080,7 +37097,7 @@
 
 [variablelist
   
-[[handler][The handler to be called. The io\_service will make a copy of the handler object as required. The function signature of the handler must be:
+[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
 ``
    void handler();
 ``
@@ -34090,13 +37107,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:has_service io_service::has_service]
 
-[indexterm2 has_service..io_service] Determine if an io_service contains a specified service type.
+[indexterm2 has_service..io_service]
+Determine if an [link boost_asio.reference.io_service `io_service`] contains a specified service type.
+
 
   template<
       typename ``[link boost_asio.reference.Service Service]``>
@@ -34104,7 +37124,7 @@
       io_service & ios);
 
 
-This function is used to determine whether the io_service contains a service object corresponding to the given service type.
+This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
 
 [heading Parameters]
@@ -34112,13 +37132,15 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
+
 [heading Return Value]
       
-A boolean indicating whether the io_service contains the service.
+A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
+
 
 
 [heading Requirements]
@@ -34133,20 +37155,24 @@
 
 [section:io_service io_service::io_service]
 
-[indexterm2 io_service..io_service] Constructor.
+[indexterm2 io_service..io_service]
+Constructor.
+
 
   ``[link boost_asio.reference.io_service.io_service.overload1 io_service]``();
   `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload1 more...]]``
 
- ``[link boost_asio.reference.io_service.io_service.overload2 io_service]``(
+ explicit ``[link boost_asio.reference.io_service.io_service.overload2 io_service]``(
       std::size_t concurrency_hint);
   `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload2 more...]]``
 
 
 [section:overload1 io_service::io_service (1 of 2 overloads)]
 
+
 Constructor.
 
+
   io_service();
 
 
@@ -34157,8 +37183,10 @@
 
 [section:overload2 io_service::io_service (2 of 2 overloads)]
 
+
 Constructor.
 
+
   io_service(
       std::size_t concurrency_hint);
 
@@ -34177,6 +37205,7 @@
 
 
 
+
 [endsect]
 
 
@@ -34184,7 +37213,9 @@
 
 [section:poll io_service::poll]
 
-[indexterm2 poll..io_service] Run the io_service's event processing loop to execute ready handlers.
+[indexterm2 poll..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
+
 
   std::size_t ``[link boost_asio.reference.io_service.poll.overload1 poll]``();
   `` [''''&raquo;''' [link boost_asio.reference.io_service.poll.overload1 more...]]``
@@ -34196,18 +37227,21 @@
 
 [section:overload1 io_service::poll (1 of 2 overloads)]
 
-Run the io_service's event processing loop to execute ready handlers.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
+
 
   std::size_t poll();
 
 
-The poll() function runs handlers that are ready to run, without blocking, until the io_service has been stopped or there are no more ready handlers.
+The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
 
 
 [heading Return Value]
       
 The number of handlers that were executed.
 
+
 [heading Exceptions]
     
 
@@ -34219,19 +37253,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 io_service::poll (2 of 2 overloads)]
 
-Run the io_service's event processing loop to execute ready handlers.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
+
 
   std::size_t poll(
       boost::system::error_code & ec);
 
 
-The poll() function runs handlers that are ready to run, without blocking, until the io_service has been stopped or there are no more ready handlers.
+The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
 
 
 [heading Parameters]
@@ -34243,12 +37280,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of handlers that were executed.
 
 
 
+
 [endsect]
 
 
@@ -34256,7 +37295,9 @@
 
 [section:poll_one io_service::poll_one]
 
-[indexterm2 poll_one..io_service] Run the io_service's event processing loop to execute one ready handler.
+[indexterm2 poll_one..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+
 
   std::size_t ``[link boost_asio.reference.io_service.poll_one.overload1 poll_one]``();
   `` [''''&raquo;''' [link boost_asio.reference.io_service.poll_one.overload1 more...]]``
@@ -34268,18 +37309,21 @@
 
 [section:overload1 io_service::poll_one (1 of 2 overloads)]
 
-Run the io_service's event processing loop to execute one ready handler.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+
 
   std::size_t poll_one();
 
 
-The poll\_one() function runs at most one handler that is ready to run, without blocking.
+The `poll_one()` function runs at most one handler that is ready to run, without blocking.
 
 
 [heading Return Value]
       
 The number of handlers that were executed.
 
+
 [heading Exceptions]
     
 
@@ -34291,19 +37335,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 io_service::poll_one (2 of 2 overloads)]
 
-Run the io_service's event processing loop to execute one ready handler.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+
 
   std::size_t poll_one(
       boost::system::error_code & ec);
 
 
-The poll\_one() function runs at most one handler that is ready to run, without blocking.
+The `poll_one()` function runs at most one handler that is ready to run, without blocking.
 
 
 [heading Parameters]
@@ -34315,12 +37362,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of handlers that were executed.
 
 
 
+
 [endsect]
 
 
@@ -34329,7 +37378,9 @@
 
 [section:post io_service::post]
 
-[indexterm2 post..io_service] Request the io_service to invoke the given handler and return immediately.
+[indexterm2 post..io_service]
+Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler and return immediately.
+
 
   template<
       typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
@@ -34337,9 +37388,9 @@
       CompletionHandler handler);
 
 
-This function is used to ask the io_service to execute the given handler, but without allowing the io_service to call the handler from inside this function.
+This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler, but without allowing the [link boost_asio.reference.io_service `io_service`] to call the handler from inside this function.
 
-The io_service guarantees that the handler will only be called in a thread in which the run(), run\_one(), poll() or poll\_one() member functions is currently being invoked.
+The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked.
 
 
 [heading Parameters]
@@ -34347,7 +37398,7 @@
 
 [variablelist
   
-[[handler][The handler to be called. The io\_service will make a copy of the handler object as required. The function signature of the handler must be:
+[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
 ``
    void handler();
 ``
@@ -34357,20 +37408,23 @@
 
 
 
+
 [endsect]
 
 
 
 [section:reset io_service::reset]
 
-[indexterm2 reset..io_service] Reset the io_service in preparation for a subsequent run() invocation.
+[indexterm2 reset..io_service]
+Reset the [link boost_asio.reference.io_service `io_service`] in preparation for a subsequent `run()` invocation.
+
 
   void reset();
 
 
-This function must be called prior to any second or later set of invocations of the run(), run\_one(), poll() or poll\_one() functions when a previous invocation of these functions returned due to the io_service being stopped or running out of work. This function allows the io_service to reset any internal state, such as a "stopped" flag.
+This function must be called prior to any second or later set of invocations of the `run()`, `run_one()`, `poll()` or `poll_one()` functions when a previous invocation of these functions returned due to the [link boost_asio.reference.io_service `io_service`] being stopped or running out of work. This function allows the [link boost_asio.reference.io_service `io_service`] to reset any internal state, such as a "stopped" flag.
 
-This function must not be called while there are any unfinished calls to the run(), run\_one(), poll() or poll\_one() functions.
+This function must not be called while there are any unfinished calls to the `run()`, `run_one()`, `poll()` or `poll_one()` functions.
 
 
 [endsect]
@@ -34378,7 +37432,9 @@
 
 [section:run io_service::run]
 
-[indexterm2 run..io_service] Run the io_service's event processing loop.
+[indexterm2 run..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+
 
   std::size_t ``[link boost_asio.reference.io_service.run.overload1 run]``();
   `` [''''&raquo;''' [link boost_asio.reference.io_service.run.overload1 more...]]``
@@ -34390,22 +37446,25 @@
 
 [section:overload1 io_service::run (1 of 2 overloads)]
 
-Run the io_service's event processing loop.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+
 
   std::size_t run();
 
 
-The run() function blocks until all work has finished and there are no more handlers to be dispatched, or until the io_service has been stopped.
+The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
-Multiple threads may call the run() function to set up a pool of threads from which the io_service may execute handlers. All threads that are waiting in the pool are equivalent and the io_service may choose any one of them to invoke a handler.
+Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
 
-The run() function may be safely called again once it has completed only after a call to reset().
+The `run()` function may be safely called again once it has completed only after a call to `reset()`.
 
 
 [heading Return Value]
       
 The number of handlers that were executed.
 
+
 [heading Exceptions]
     
 
@@ -34415,10 +37474,12 @@
 
 ]
 
+
 [heading Remarks]
       
-The poll() function may also be used to dispatch ready handlers, but without blocking.
+The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
 
+The `poll()` function may also be used to dispatch ready handlers, but without blocking.
 
 
 [endsect]
@@ -34427,17 +37488,19 @@
 
 [section:overload2 io_service::run (2 of 2 overloads)]
 
-Run the io_service's event processing loop.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+
 
   std::size_t run(
       boost::system::error_code & ec);
 
 
-The run() function blocks until all work has finished and there are no more handlers to be dispatched, or until the io_service has been stopped.
+The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
-Multiple threads may call the run() function to set up a pool of threads from which the io_service may execute handlers. All threads that are waiting in the pool are equivalent and the io_service may choose any one of them to invoke a handler.
+Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
 
-The run() function may be safely called again once it has completed only after a call to reset().
+The `run()` function may be safely called again once it has completed only after a call to `reset()`.
 
 
 [heading Parameters]
@@ -34449,14 +37512,17 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of handlers that were executed.
 
+
 [heading Remarks]
       
-The poll() function may also be used to dispatch ready handlers, but without blocking.
+The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
 
+The `poll()` function may also be used to dispatch ready handlers, but without blocking.
 
 
 [endsect]
@@ -34466,7 +37532,9 @@
 
 [section:run_one io_service::run_one]
 
-[indexterm2 run_one..io_service] Run the io_service's event processing loop to execute at most one handler.
+[indexterm2 run_one..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
+
 
   std::size_t ``[link boost_asio.reference.io_service.run_one.overload1 run_one]``();
   `` [''''&raquo;''' [link boost_asio.reference.io_service.run_one.overload1 more...]]``
@@ -34478,18 +37546,21 @@
 
 [section:overload1 io_service::run_one (1 of 2 overloads)]
 
-Run the io_service's event processing loop to execute at most one handler.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
+
 
   std::size_t run_one();
 
 
-The run\_one() function blocks until one handler has been dispatched, or until the io_service has been stopped.
+The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
 
 [heading Return Value]
       
 The number of handlers that were executed.
 
+
 [heading Exceptions]
     
 
@@ -34501,19 +37572,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 io_service::run_one (2 of 2 overloads)]
 
-Run the io_service's event processing loop to execute at most one handler.
+
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
+
 
   std::size_t run_one(
       boost::system::error_code & ec);
 
 
-The run\_one() function blocks until one handler has been dispatched, or until the io_service has been stopped.
+The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
 
 [heading Parameters]
@@ -34525,12 +37599,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of handlers that were executed.
 
 
 
+
 [endsect]
 
 
@@ -34539,12 +37615,14 @@
 
 [section:stop io_service::stop]
 
-[indexterm2 stop..io_service] Stop the io_service's event processing loop.
+[indexterm2 stop..io_service]
+Stop the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+
 
   void stop();
 
 
-This function does not block, but instead simply signals the io_service to stop. All invocations of its run() or run\_one() member functions should return as soon as possible. Subsequent calls to run(), run\_one(), poll() or poll\_one() will return immediately until reset() is called.
+This function does not block, but instead simply signals the [link boost_asio.reference.io_service `io_service`] to stop. All invocations of its `run()` or `run_one()` member functions should return as soon as possible. Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately until `reset()` is called.
 
 
 [endsect]
@@ -34553,7 +37631,9 @@
 
 [section:use_service io_service::use_service]
 
-[indexterm2 use_service..io_service] Obtain the service object corresponding to the given type.
+[indexterm2 use_service..io_service]
+Obtain the service object corresponding to the given type.
+
 
   template<
       typename ``[link boost_asio.reference.Service Service]``>
@@ -34561,7 +37641,7 @@
       io_service & ios);
 
 
-This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the io_service will create a new instance of the service.
+This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
 
 
 [heading Parameters]
@@ -34569,15 +37649,17 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
+
 [heading Return Value]
       
 The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/io_service.hpp]
@@ -34591,7 +37673,9 @@
 
 [section:wrap io_service::wrap]
 
-[indexterm2 wrap..io_service] Create a new handler that automatically dispatches the wrapped handler on the io_service.
+[indexterm2 wrap..io_service]
+Create a new handler that automatically dispatches the wrapped handler on the [link boost_asio.reference.io_service `io_service`].
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -34599,7 +37683,7 @@
       Handler handler);
 
 
-This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the io\_service's dispatch function.
+This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function.
 
 
 [heading Parameters]
@@ -34607,7 +37691,7 @@
 
 [variablelist
   
-[[handler][The handler to be wrapped. The io\_service will make a copy of the handler object as required. The function signature of the handler must be:
+[[handler][The handler to be wrapped. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
 ``
    void handler(A1 a1, ... An an);
 ``
@@ -34615,9 +37699,10 @@
 
 ]
 
+
 [heading Return Value]
       
-A function object that, when invoked, passes the wrapped handler to the io\_service's dispatch function. Given a function object with the signature:
+A function object that, when invoked, passes the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function. Given a function object with the signature:
 
    R f(A1 a1, ... An an);
 
@@ -34641,17 +37726,44 @@
 
 
 
+
 [endsect]
 
 
 
 [section:_io_service io_service::~io_service]
 
-[indexterm2 ~io_service..io_service] Destructor.
+[indexterm2 ~io_service..io_service]
+Destructor.
+
 
   ~io_service();
 
 
+On destruction, the [link boost_asio.reference.io_service `io_service`] performs the following sequence of operations:
+
+
+* For each service object svc in the io_service set, in reverse order of the beginning of service object lifetime, performs svc->shutdown_service().
+
+
+* Uninvoked handler objects that were scheduled for deferred invocation on the io_service, or any associated strand, are destroyed.
+
+
+* For each service object svc in the io_service set, in reverse order of the beginning of service object lifetime, performs delete static_cast<io_service::service*>(svc).
+
+
+[heading Remarks]
+
+The destruction sequence described above permits programs to simplify their resource management by using `shared_ptr<>`. Where an object's lifetime is tied to the lifetime of a connection (or some other sequence of asynchronous operations), a `shared_ptr` to the object would be bound into the handlers for all asynchronous operations associated with it. This works as follows:
+
+
+* When a single connection ends, all associated asynchronous operations complete. The corresponding handler objects are destroyed, and all shared_ptr references to the objects are destroyed.
+
+
+* To shut down the whole program, the io_service function stop() is called to terminate any run() calls as soon as possible. The io_service destructor defined above destroys all handlers, causing all shared_ptr references to all connection objects to be destroyed.
+
+
+
 
 [endsect]
 
@@ -34661,8 +37773,10 @@
 
 [section:io_service__id io_service::id]
 
+
 Class used to uniquely identify a service.
 
+
   class id :
     noncopyable
 
@@ -34687,7 +37801,9 @@
 
 [section:id io_service::id::id]
 
-[indexterm2 id..io_service::id] Constructor.
+[indexterm2 id..io_service::id]
+Constructor.
+
 
   id();
 
@@ -34701,7 +37817,9 @@
 
 [section:io_service__service io_service::service]
 
-Base class for all io_service services.
+
+Base class for all [link boost_asio.reference.io_service `io_service`] services.
+
 
   class service :
     noncopyable
@@ -34748,7 +37866,9 @@
 
 [section:get_io_service io_service::service::get_io_service]
 
-[indexterm2 get_io_service..io_service::service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..io_service::service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -34760,7 +37880,9 @@
 
 [section:io_service io_service::service::io_service]
 
-[indexterm2 io_service..io_service::service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..io_service::service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -34772,7 +37894,9 @@
 
 [section:service io_service::service::service]
 
-[indexterm2 service..io_service::service] Constructor.
+[indexterm2 service..io_service::service]
+Constructor.
+
 
   service(
       boost::asio::io_service & owner);
@@ -34784,19 +37908,22 @@
 
 [variablelist
   
-[[owner][The io\_service object that owns the service. ]]
+[[owner][The [link boost_asio.reference.io_service `io_service`] object that owns the service. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:_service io_service::service::~service]
 
-[indexterm2 ~service..io_service::service] Destructor.
+[indexterm2 ~service..io_service::service]
+Destructor.
+
 
   virtual ~service();
 
@@ -34810,8 +37937,10 @@
 
 [section:io_service__strand io_service::strand]
 
+
 Provides serialised handler execution.
 
+
   class strand
 
 
@@ -34856,14 +37985,16 @@
   
 ]
 
-The io_service::strand class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
+The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -34875,7 +38006,9 @@
 
 [section:dispatch io_service::strand::dispatch]
 
-[indexterm2 dispatch..io_service::strand] Request the strand to invoke the given handler.
+[indexterm2 dispatch..io_service::strand]
+Request the strand to invoke the given handler.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -34887,7 +38020,7 @@
 
 The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The handler may be executed inside this function if the guarantee can be met. If this function is called from within a handler that was posted or dispatched through the same strand, then the new handler will be executed immediately.
 
-The strand's guarantee is in addition to the guarantee provided by the underlying io_service. The io_service guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
+The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
 
 
 [heading Parameters]
@@ -34905,23 +38038,27 @@
 
 
 
+
 [endsect]
 
 
 
 [section:get_io_service io_service::strand::get_io_service]
 
-[indexterm2 get_io_service..io_service::strand] Get the io_service associated with the strand.
+[indexterm2 get_io_service..io_service::strand]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the strand.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the strand uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the strand uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -34931,17 +38068,20 @@
 
 [section:io_service io_service::strand::io_service]
 
-[indexterm2 io_service..io_service::strand] (Deprecated: use get_io_service().) Get the io_service associated with the strand.
+[indexterm2 io_service..io_service::strand]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the strand.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the strand uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the strand uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -34951,7 +38091,9 @@
 
 [section:post io_service::strand::post]
 
-[indexterm2 post..io_service::strand] Request the strand to invoke the given handler and return immediately.
+[indexterm2 post..io_service::strand]
+Request the strand to invoke the given handler and return immediately.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -34961,7 +38103,7 @@
 
 This function is used to ask the strand to execute the given handler, but without allowing the strand to call the handler from inside this function.
 
-The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The strand's guarantee is in addition to the guarantee provided by the underlying io_service. The io_service guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
+The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
 
 
 [heading Parameters]
@@ -34979,13 +38121,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:strand io_service::strand::strand]
 
-[indexterm2 strand..io_service::strand] Constructor.
+[indexterm2 strand..io_service::strand]
+Constructor.
+
 
   strand(
       boost::asio::io_service & io_service);
@@ -34999,19 +38144,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the strand will use to dispatch handlers that are ready to be run. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers that are ready to be run. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:wrap io_service::strand::wrap]
 
-[indexterm2 wrap..io_service::strand] Create a new handler that automatically dispatches the wrapped handler on the strand.
+[indexterm2 wrap..io_service::strand]
+Create a new handler that automatically dispatches the wrapped handler on the strand.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -35035,6 +38183,7 @@
 
 ]
 
+
 [heading Return Value]
       
 A function object that, when invoked, passes the wrapped handler to the strand's dispatch function. Given a function object with the signature:
@@ -35061,13 +38210,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:_strand io_service::strand::~strand]
 
-[indexterm2 ~strand..io_service::strand] Destructor.
+[indexterm2 ~strand..io_service::strand]
+Destructor.
+
 
   ~strand();
 
@@ -35085,7 +38237,9 @@
 
 [section:io_service__work io_service::work]
 
-Class to inform the io_service when it has work to do.
+
+Class to inform the [link boost_asio.reference.io_service `io_service`] when it has work to do.
+
 
   class work
 
@@ -35118,7 +38272,7 @@
   
 ]
 
-The work class is used to inform the io_service when work starts and finishes. This ensures that the io\_service's run() function will not exit while work is underway, and that it does exit when there is no unfinished work remaining.
+The work class is used to inform the [link boost_asio.reference.io_service `io_service`] when work starts and finishes. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while work is underway, and that it does exit when there is no unfinished work remaining.
 
 The work class is copy-constructible so that it may be used as a data member in a handler class. It is not assignable.
 
@@ -35131,7 +38285,9 @@
 
 [section:get_io_service io_service::work::get_io_service]
 
-[indexterm2 get_io_service..io_service::work] Get the io_service associated with the work.
+[indexterm2 get_io_service..io_service::work]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the work.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -35143,7 +38299,9 @@
 
 [section:io_service io_service::work::io_service]
 
-[indexterm2 io_service..io_service::work] (Deprecated: use get_io_service().) Get the io_service associated with the work.
+[indexterm2 io_service..io_service::work]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the work.
+
 
   boost::asio::io_service & io_service();
 
@@ -35154,13 +38312,17 @@
 
 [section:work io_service::work::work]
 
-[indexterm2 work..io_service::work] Constructor notifies the io_service that work is starting.
+[indexterm2 work..io_service::work]
+Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
- ``[link boost_asio.reference.io_service__work.work.overload1 work]``(
+
+ explicit ``[link boost_asio.reference.io_service__work.work.overload1 work]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.io_service__work.work.overload1 more...]]``
 
-Copy constructor notifies the io_service that work is starting.
+
+Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+
 
   ``[link boost_asio.reference.io_service__work.work.overload2 work]``(
       const work & other);
@@ -35169,13 +38331,15 @@
 
 [section:overload1 io_service::work::work (1 of 2 overloads)]
 
-Constructor notifies the io_service that work is starting.
+
+Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+
 
   work(
       boost::asio::io_service & io_service);
 
 
-The constructor is used to inform the io_service that some work has begun. This ensures that the io\_service's run() function will not exit while the work is underway.
+The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
 
 
 [endsect]
@@ -35184,13 +38348,15 @@
 
 [section:overload2 io_service::work::work (2 of 2 overloads)]
 
-Copy constructor notifies the io_service that work is starting.
+
+Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+
 
   work(
       const work & other);
 
 
-The constructor is used to inform the io_service that some work has begun. This ensures that the io\_service's run() function will not exit while the work is underway.
+The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
 
 
 [endsect]
@@ -35201,12 +38367,14 @@
 
 [section:_work io_service::work::~work]
 
-[indexterm2 ~work..io_service::work] Destructor notifies the io_service that the work is complete.
+[indexterm2 ~work..io_service::work]
+Destructor notifies the [link boost_asio.reference.io_service `io_service`] that the work is complete.
+
 
   ~work();
 
 
-The destructor is used to inform the io_service that some work has finished. Once the count of unfinished work reaches zero, the io\_service's run() function is permitted to exit.
+The destructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has finished. Once the count of unfinished work reaches zero, the [link boost_asio.reference.io_service `io_service`] object's `run()` function is permitted to exit.
 
 
 [endsect]
@@ -35217,8 +38385,10 @@
 
 [section:ip__address ip::address]
 
+
 Implements version-independent IP addresses.
 
+
   class address
 
 
@@ -35310,15 +38480,15 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__address ip::address] class provides the ability to use either IP version 4 or version 6 addresses.
+The [link boost_asio.reference.ip__address `ip::address`] class provides the ability to use either IP version 4 or version 6 addresses.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -35329,25 +38499,33 @@
 
 [section:address ip::address::address]
 
-[indexterm2 address..ip::address] Default constructor.
+[indexterm2 address..ip::address]
+Default constructor.
+
 
   ``[link boost_asio.reference.ip__address.address.overload1 address]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload1 more...]]``
 
+
 Construct an address from an IPv4 address.
 
+
   ``[link boost_asio.reference.ip__address.address.overload2 address]``(
       const boost::asio::ip::address_v4 & ipv4_address);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload2 more...]]``
 
+
 Construct an address from an IPv6 address.
 
+
   ``[link boost_asio.reference.ip__address.address.overload3 address]``(
       const boost::asio::ip::address_v6 & ipv6_address);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload3 more...]]``
 
+
 Copy constructor.
 
+
   ``[link boost_asio.reference.ip__address.address.overload4 address]``(
       const address & other);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload4 more...]]``
@@ -35355,8 +38533,10 @@
 
 [section:overload1 ip::address::address (1 of 4 overloads)]
 
+
 Default constructor.
 
+
   address();
 
 
@@ -35367,8 +38547,10 @@
 
 [section:overload2 ip::address::address (2 of 4 overloads)]
 
+
 Construct an address from an IPv4 address.
 
+
   address(
       const boost::asio::ip::address_v4 & ipv4_address);
 
@@ -35380,8 +38562,10 @@
 
 [section:overload3 ip::address::address (3 of 4 overloads)]
 
+
 Construct an address from an IPv6 address.
 
+
   address(
       const boost::asio::ip::address_v6 & ipv6_address);
 
@@ -35393,8 +38577,10 @@
 
 [section:overload4 ip::address::address (4 of 4 overloads)]
 
+
 Copy constructor.
 
+
   address(
       const address & other);
 
@@ -35407,7 +38593,9 @@
 
 [section:from_string ip::address::from_string]
 
-[indexterm2 from_string..ip::address] Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
+[indexterm2 from_string..ip::address]
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
+
 
   static address ``[link boost_asio.reference.ip__address.from_string.overload1 from_string]``(
       const char * str);
@@ -35430,8 +38618,10 @@
 
 [section:overload1 ip::address::from_string (1 of 4 overloads)]
 
+
 Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+
   static address from_string(
       const char * str);
 
@@ -35443,8 +38633,10 @@
 
 [section:overload2 ip::address::from_string (2 of 4 overloads)]
 
+
 Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+
   static address from_string(
       const char * str,
       boost::system::error_code & ec);
@@ -35457,8 +38649,10 @@
 
 [section:overload3 ip::address::from_string (3 of 4 overloads)]
 
+
 Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+
   static address from_string(
       const std::string & str);
 
@@ -35470,8 +38664,10 @@
 
 [section:overload4 ip::address::from_string (4 of 4 overloads)]
 
+
 Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+
   static address from_string(
       const std::string & str,
       boost::system::error_code & ec);
@@ -35486,7 +38682,9 @@
 
 [section:is_v4 ip::address::is_v4]
 
-[indexterm2 is_v4..ip::address] Get whether the address is an IP version 4 address.
+[indexterm2 is_v4..ip::address]
+Get whether the address is an IP version 4 address.
+
 
   bool is_v4() const;
 
@@ -35498,7 +38696,9 @@
 
 [section:is_v6 ip::address::is_v6]
 
-[indexterm2 is_v6..ip::address] Get whether the address is an IP version 6 address.
+[indexterm2 is_v6..ip::address]
+Get whether the address is an IP version 6 address.
+
 
   bool is_v6() const;
 
@@ -35510,7 +38710,9 @@
 
 [section:operator_not__eq_ ip::address::operator!=]
 
-[indexterm2 operator!=..ip::address] Compare two addresses for inequality.
+[indexterm2 operator!=..ip::address]
+Compare two addresses for inequality.
+
 
   friend bool operator!=(
       const address & a1,
@@ -35530,7 +38732,9 @@
 
 [section:operator_lt_ ip::address::operator<]
 
-[indexterm2 operator<..ip::address] Compare addresses for ordering.
+[indexterm2 operator<..ip::address]
+Compare addresses for ordering.
+
 
   friend bool operator<(
       const address & a1,
@@ -35550,7 +38754,9 @@
 
 [section:operator_lt__lt_ ip::address::operator<<]
 
-[indexterm2 operator<<..ip::address] Output an address as a string.
+[indexterm2 operator<<..ip::address]
+Output an address as a string.
+
 
   template<
       typename Elem,
@@ -35574,31 +38780,39 @@
 
 ]
 
+
 [heading Return Value]
       
 The output stream.
 
 
 
+
 [endsect]
 
 
 [section:operator_eq_ ip::address::operator=]
 
-[indexterm2 operator=..ip::address] Assign from another address.
+[indexterm2 operator=..ip::address]
+Assign from another address.
+
 
   address & ``[link boost_asio.reference.ip__address.operator_eq_.overload1 operator=]``(
       const address & other);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload1 more...]]``
 
+
 Assign from an IPv4 address.
 
+
   address & ``[link boost_asio.reference.ip__address.operator_eq_.overload2 operator=]``(
       const boost::asio::ip::address_v4 & ipv4_address);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload2 more...]]``
 
+
 Assign from an IPv6 address.
 
+
   address & ``[link boost_asio.reference.ip__address.operator_eq_.overload3 operator=]``(
       const boost::asio::ip::address_v6 & ipv6_address);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload3 more...]]``
@@ -35606,8 +38820,10 @@
 
 [section:overload1 ip::address::operator= (1 of 3 overloads)]
 
+
 Assign from another address.
 
+
   address & operator=(
       const address & other);
 
@@ -35619,8 +38835,10 @@
 
 [section:overload2 ip::address::operator= (2 of 3 overloads)]
 
+
 Assign from an IPv4 address.
 
+
   address & operator=(
       const boost::asio::ip::address_v4 & ipv4_address);
 
@@ -35632,8 +38850,10 @@
 
 [section:overload3 ip::address::operator= (3 of 3 overloads)]
 
+
 Assign from an IPv6 address.
 
+
   address & operator=(
       const boost::asio::ip::address_v6 & ipv6_address);
 
@@ -35647,7 +38867,9 @@
 
 [section:operator_eq__eq_ ip::address::operator==]
 
-[indexterm2 operator==..ip::address] Compare two addresses for equality.
+[indexterm2 operator==..ip::address]
+Compare two addresses for equality.
+
 
   friend bool operator==(
       const address & a1,
@@ -35666,7 +38888,9 @@
 
 [section:to_string ip::address::to_string]
 
-[indexterm2 to_string..ip::address] Get the address as a string in dotted decimal format.
+[indexterm2 to_string..ip::address]
+Get the address as a string in dotted decimal format.
+
 
   std::string ``[link boost_asio.reference.ip__address.to_string.overload1 to_string]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__address.to_string.overload1 more...]]``
@@ -35678,8 +38902,10 @@
 
 [section:overload1 ip::address::to_string (1 of 2 overloads)]
 
+
 Get the address as a string in dotted decimal format.
 
+
   std::string to_string() const;
 
 
@@ -35690,8 +38916,10 @@
 
 [section:overload2 ip::address::to_string (2 of 2 overloads)]
 
+
 Get the address as a string in dotted decimal format.
 
+
   std::string to_string(
       boost::system::error_code & ec) const;
 
@@ -35705,7 +38933,9 @@
 
 [section:to_v4 ip::address::to_v4]
 
-[indexterm2 to_v4..ip::address] Get the address as an IP version 4 address.
+[indexterm2 to_v4..ip::address]
+Get the address as an IP version 4 address.
+
 
   boost::asio::ip::address_v4 to_v4() const;
 
@@ -35717,7 +38947,9 @@
 
 [section:to_v6 ip::address::to_v6]
 
-[indexterm2 to_v6..ip::address] Get the address as an IP version 6 address.
+[indexterm2 to_v6..ip::address]
+Get the address as an IP version 6 address.
+
 
   boost::asio::ip::address_v6 to_v6() const;
 
@@ -35731,8 +38963,10 @@
 
 [section:ip__address_v4 ip::address_v4]
 
+
 Implements IP version 4 style addresses.
 
+
   class address_v4
 
 
@@ -35880,15 +39114,15 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__address_v4 ip::address_v4] class provides the ability to use and manipulate IP version 4 addresses.
+The [link boost_asio.reference.ip__address_v4 `ip::address_v4`] class provides the ability to use and manipulate IP version 4 addresses.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -35899,25 +39133,33 @@
 
 [section:address_v4 ip::address_v4::address_v4]
 
-[indexterm2 address_v4..ip::address_v4] Default constructor.
+[indexterm2 address_v4..ip::address_v4]
+Default constructor.
+
 
   ``[link boost_asio.reference.ip__address_v4.address_v4.overload1 address_v4]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload1 more...]]``
 
+
 Construct an address from raw bytes.
 
- ``[link boost_asio.reference.ip__address_v4.address_v4.overload2 address_v4]``(
+
+ explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload2 address_v4]``(
       const bytes_type & bytes);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload2 more...]]``
 
+
 Construct an address from a unsigned long in host byte order.
 
- ``[link boost_asio.reference.ip__address_v4.address_v4.overload3 address_v4]``(
+
+ explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload3 address_v4]``(
       unsigned long addr);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload3 more...]]``
 
+
 Copy constructor.
 
+
   ``[link boost_asio.reference.ip__address_v4.address_v4.overload4 address_v4]``(
       const address_v4 & other);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload4 more...]]``
@@ -35925,8 +39167,10 @@
 
 [section:overload1 ip::address_v4::address_v4 (1 of 4 overloads)]
 
+
 Default constructor.
 
+
   address_v4();
 
 
@@ -35937,8 +39181,10 @@
 
 [section:overload2 ip::address_v4::address_v4 (2 of 4 overloads)]
 
+
 Construct an address from raw bytes.
 
+
   address_v4(
       const bytes_type & bytes);
 
@@ -35950,8 +39196,10 @@
 
 [section:overload3 ip::address_v4::address_v4 (3 of 4 overloads)]
 
+
 Construct an address from a unsigned long in host byte order.
 
+
   address_v4(
       unsigned long addr);
 
@@ -35963,8 +39211,10 @@
 
 [section:overload4 ip::address_v4::address_v4 (4 of 4 overloads)]
 
+
 Copy constructor.
 
+
   address_v4(
       const address_v4 & other);
 
@@ -35978,7 +39228,9 @@
 
 [section:any ip::address_v4::any]
 
-[indexterm2 any..ip::address_v4] Obtain an address object that represents any address.
+[indexterm2 any..ip::address_v4]
+Obtain an address object that represents any address.
+
 
   static address_v4 any();
 
@@ -35989,13 +39241,17 @@
 
 [section:broadcast ip::address_v4::broadcast]
 
-[indexterm2 broadcast..ip::address_v4] Obtain an address object that represents the broadcast address.
+[indexterm2 broadcast..ip::address_v4]
+Obtain an address object that represents the broadcast address.
+
 
   static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload1 broadcast]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.broadcast.overload1 more...]]``
 
+
 Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
 
+
   static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload2 broadcast]``(
       const address_v4 & addr,
       const address_v4 & mask);
@@ -36004,8 +39260,10 @@
 
 [section:overload1 ip::address_v4::broadcast (1 of 2 overloads)]
 
+
 Obtain an address object that represents the broadcast address.
 
+
   static address_v4 broadcast();
 
 
@@ -36016,8 +39274,10 @@
 
 [section:overload2 ip::address_v4::broadcast (2 of 2 overloads)]
 
+
 Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
 
+
   static address_v4 broadcast(
       const address_v4 & addr,
       const address_v4 & mask);
@@ -36032,7 +39292,9 @@
 
 [section:bytes_type ip::address_v4::bytes_type]
 
-[indexterm2 bytes_type..ip::address_v4] The type used to represent an address as an array of bytes.
+[indexterm2 bytes_type..ip::address_v4]
+The type used to represent an address as an array of bytes.
+
 
   typedef boost::array< unsigned char, 4 > bytes_type;
 
@@ -36050,7 +39312,9 @@
 
 [section:from_string ip::address_v4::from_string]
 
-[indexterm2 from_string..ip::address_v4] Create an address from an IP address string in dotted decimal form.
+[indexterm2 from_string..ip::address_v4]
+Create an address from an IP address string in dotted decimal form.
+
 
   static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload1 from_string]``(
       const char * str);
@@ -36073,8 +39337,10 @@
 
 [section:overload1 ip::address_v4::from_string (1 of 4 overloads)]
 
+
 Create an address from an IP address string in dotted decimal form.
 
+
   static address_v4 from_string(
       const char * str);
 
@@ -36086,8 +39352,10 @@
 
 [section:overload2 ip::address_v4::from_string (2 of 4 overloads)]
 
+
 Create an address from an IP address string in dotted decimal form.
 
+
   static address_v4 from_string(
       const char * str,
       boost::system::error_code & ec);
@@ -36100,8 +39368,10 @@
 
 [section:overload3 ip::address_v4::from_string (3 of 4 overloads)]
 
+
 Create an address from an IP address string in dotted decimal form.
 
+
   static address_v4 from_string(
       const std::string & str);
 
@@ -36113,8 +39383,10 @@
 
 [section:overload4 ip::address_v4::from_string (4 of 4 overloads)]
 
+
 Create an address from an IP address string in dotted decimal form.
 
+
   static address_v4 from_string(
       const std::string & str,
       boost::system::error_code & ec);
@@ -36129,7 +39401,9 @@
 
 [section:is_class_a ip::address_v4::is_class_a]
 
-[indexterm2 is_class_a..ip::address_v4] Determine whether the address is a class A address.
+[indexterm2 is_class_a..ip::address_v4]
+Determine whether the address is a class A address.
+
 
   bool is_class_a() const;
 
@@ -36141,7 +39415,9 @@
 
 [section:is_class_b ip::address_v4::is_class_b]
 
-[indexterm2 is_class_b..ip::address_v4] Determine whether the address is a class B address.
+[indexterm2 is_class_b..ip::address_v4]
+Determine whether the address is a class B address.
+
 
   bool is_class_b() const;
 
@@ -36153,7 +39429,9 @@
 
 [section:is_class_c ip::address_v4::is_class_c]
 
-[indexterm2 is_class_c..ip::address_v4] Determine whether the address is a class C address.
+[indexterm2 is_class_c..ip::address_v4]
+Determine whether the address is a class C address.
+
 
   bool is_class_c() const;
 
@@ -36165,7 +39443,9 @@
 
 [section:is_multicast ip::address_v4::is_multicast]
 
-[indexterm2 is_multicast..ip::address_v4] Determine whether the address is a multicast address.
+[indexterm2 is_multicast..ip::address_v4]
+Determine whether the address is a multicast address.
+
 
   bool is_multicast() const;
 
@@ -36177,7 +39457,9 @@
 
 [section:loopback ip::address_v4::loopback]
 
-[indexterm2 loopback..ip::address_v4] Obtain an address object that represents the loopback address.
+[indexterm2 loopback..ip::address_v4]
+Obtain an address object that represents the loopback address.
+
 
   static address_v4 loopback();
 
@@ -36189,7 +39471,9 @@
 
 [section:netmask ip::address_v4::netmask]
 
-[indexterm2 netmask..ip::address_v4] Obtain the netmask that corresponds to the address, based on its address class.
+[indexterm2 netmask..ip::address_v4]
+Obtain the netmask that corresponds to the address, based on its address class.
+
 
   static address_v4 netmask(
       const address_v4 & addr);
@@ -36202,7 +39486,9 @@
 
 [section:operator_not__eq_ ip::address_v4::operator!=]
 
-[indexterm2 operator!=..ip::address_v4] Compare two addresses for inequality.
+[indexterm2 operator!=..ip::address_v4]
+Compare two addresses for inequality.
+
 
   friend bool operator!=(
       const address_v4 & a1,
@@ -36222,7 +39508,9 @@
 
 [section:operator_lt_ ip::address_v4::operator<]
 
-[indexterm2 operator<..ip::address_v4] Compare addresses for ordering.
+[indexterm2 operator<..ip::address_v4]
+Compare addresses for ordering.
+
 
   friend bool operator<(
       const address_v4 & a1,
@@ -36242,7 +39530,9 @@
 
 [section:operator_lt__lt_ ip::address_v4::operator<<]
 
-[indexterm2 operator<<..ip::address_v4] Output an address as a string.
+[indexterm2 operator<<..ip::address_v4]
+Output an address as a string.
+
 
   template<
       typename Elem,
@@ -36266,19 +39556,23 @@
 
 ]
 
+
 [heading Return Value]
       
 The output stream.
 
 
 
+
 [endsect]
 
 
 
 [section:operator_lt__eq_ ip::address_v4::operator<=]
 
-[indexterm2 operator<=..ip::address_v4] Compare addresses for ordering.
+[indexterm2 operator<=..ip::address_v4]
+Compare addresses for ordering.
+
 
   friend bool operator<=(
       const address_v4 & a1,
@@ -36298,7 +39592,9 @@
 
 [section:operator_eq_ ip::address_v4::operator=]
 
-[indexterm2 operator=..ip::address_v4] Assign from another address.
+[indexterm2 operator=..ip::address_v4]
+Assign from another address.
+
 
   address_v4 & operator=(
       const address_v4 & other);
@@ -36311,7 +39607,9 @@
 
 [section:operator_eq__eq_ ip::address_v4::operator==]
 
-[indexterm2 operator==..ip::address_v4] Compare two addresses for equality.
+[indexterm2 operator==..ip::address_v4]
+Compare two addresses for equality.
+
 
   friend bool operator==(
       const address_v4 & a1,
@@ -36331,7 +39629,9 @@
 
 [section:operator_gt_ ip::address_v4::operator>]
 
-[indexterm2 operator>..ip::address_v4] Compare addresses for ordering.
+[indexterm2 operator>..ip::address_v4]
+Compare addresses for ordering.
+
 
   friend bool operator>(
       const address_v4 & a1,
@@ -36351,7 +39651,9 @@
 
 [section:operator_gt__eq_ ip::address_v4::operator>=]
 
-[indexterm2 operator>=..ip::address_v4] Compare addresses for ordering.
+[indexterm2 operator>=..ip::address_v4]
+Compare addresses for ordering.
+
 
   friend bool operator>=(
       const address_v4 & a1,
@@ -36371,7 +39673,9 @@
 
 [section:to_bytes ip::address_v4::to_bytes]
 
-[indexterm2 to_bytes..ip::address_v4] Get the address in bytes.
+[indexterm2 to_bytes..ip::address_v4]
+Get the address in bytes.
+
 
   bytes_type to_bytes() const;
 
@@ -36382,7 +39686,9 @@
 
 [section:to_string ip::address_v4::to_string]
 
-[indexterm2 to_string..ip::address_v4] Get the address as a string in dotted decimal format.
+[indexterm2 to_string..ip::address_v4]
+Get the address as a string in dotted decimal format.
+
 
   std::string ``[link boost_asio.reference.ip__address_v4.to_string.overload1 to_string]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.to_string.overload1 more...]]``
@@ -36394,8 +39700,10 @@
 
 [section:overload1 ip::address_v4::to_string (1 of 2 overloads)]
 
+
 Get the address as a string in dotted decimal format.
 
+
   std::string to_string() const;
 
 
@@ -36406,8 +39714,10 @@
 
 [section:overload2 ip::address_v4::to_string (2 of 2 overloads)]
 
+
 Get the address as a string in dotted decimal format.
 
+
   std::string to_string(
       boost::system::error_code & ec) const;
 
@@ -36421,7 +39731,9 @@
 
 [section:to_ulong ip::address_v4::to_ulong]
 
-[indexterm2 to_ulong..ip::address_v4] Get the address as an unsigned long in host byte order.
+[indexterm2 to_ulong..ip::address_v4]
+Get the address as an unsigned long in host byte order.
+
 
   unsigned long to_ulong() const;
 
@@ -36435,8 +39747,10 @@
 
 [section:ip__address_v6 ip::address_v6]
 
+
 Implements IP version 6 style addresses.
 
+
   class address_v6
 
 
@@ -36625,15 +39939,15 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__address_v6 ip::address_v6] class provides the ability to use and manipulate IP version 6 addresses.
+The [link boost_asio.reference.ip__address_v6 `ip::address_v6`] class provides the ability to use and manipulate IP version 6 addresses.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -36644,20 +39958,26 @@
 
 [section:address_v6 ip::address_v6::address_v6]
 
-[indexterm2 address_v6..ip::address_v6] Default constructor.
+[indexterm2 address_v6..ip::address_v6]
+Default constructor.
+
 
   ``[link boost_asio.reference.ip__address_v6.address_v6.overload1 address_v6]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload1 more...]]``
 
+
 Construct an address from raw bytes and scope ID.
 
- ``[link boost_asio.reference.ip__address_v6.address_v6.overload2 address_v6]``(
+
+ explicit ``[link boost_asio.reference.ip__address_v6.address_v6.overload2 address_v6]``(
       const bytes_type & bytes,
       unsigned long scope_id = 0);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload2 more...]]``
 
+
 Copy constructor.
 
+
   ``[link boost_asio.reference.ip__address_v6.address_v6.overload3 address_v6]``(
       const address_v6 & other);
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload3 more...]]``
@@ -36665,8 +39985,10 @@
 
 [section:overload1 ip::address_v6::address_v6 (1 of 3 overloads)]
 
+
 Default constructor.
 
+
   address_v6();
 
 
@@ -36677,8 +39999,10 @@
 
 [section:overload2 ip::address_v6::address_v6 (2 of 3 overloads)]
 
+
 Construct an address from raw bytes and scope ID.
 
+
   address_v6(
       const bytes_type & bytes,
       unsigned long scope_id = 0);
@@ -36691,8 +40015,10 @@
 
 [section:overload3 ip::address_v6::address_v6 (3 of 3 overloads)]
 
+
 Copy constructor.
 
+
   address_v6(
       const address_v6 & other);
 
@@ -36706,7 +40032,9 @@
 
 [section:any ip::address_v6::any]
 
-[indexterm2 any..ip::address_v6] Obtain an address object that represents any address.
+[indexterm2 any..ip::address_v6]
+Obtain an address object that represents any address.
+
 
   static address_v6 any();
 
@@ -36718,7 +40046,9 @@
 
 [section:bytes_type ip::address_v6::bytes_type]
 
-[indexterm2 bytes_type..ip::address_v6] The type used to represent an address as an array of bytes.
+[indexterm2 bytes_type..ip::address_v6]
+The type used to represent an address as an array of bytes.
+
 
   typedef boost::array< unsigned char, 16 > bytes_type;
 
@@ -36736,7 +40066,9 @@
 
 [section:from_string ip::address_v6::from_string]
 
-[indexterm2 from_string..ip::address_v6] Create an address from an IP address string.
+[indexterm2 from_string..ip::address_v6]
+Create an address from an IP address string.
+
 
   static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload1 from_string]``(
       const char * str);
@@ -36759,8 +40091,10 @@
 
 [section:overload1 ip::address_v6::from_string (1 of 4 overloads)]
 
+
 Create an address from an IP address string.
 
+
   static address_v6 from_string(
       const char * str);
 
@@ -36772,8 +40106,10 @@
 
 [section:overload2 ip::address_v6::from_string (2 of 4 overloads)]
 
+
 Create an address from an IP address string.
 
+
   static address_v6 from_string(
       const char * str,
       boost::system::error_code & ec);
@@ -36786,8 +40122,10 @@
 
 [section:overload3 ip::address_v6::from_string (3 of 4 overloads)]
 
+
 Create an address from an IP address string.
 
+
   static address_v6 from_string(
       const std::string & str);
 
@@ -36799,8 +40137,10 @@
 
 [section:overload4 ip::address_v6::from_string (4 of 4 overloads)]
 
+
 Create an address from an IP address string.
 
+
   static address_v6 from_string(
       const std::string & str,
       boost::system::error_code & ec);
@@ -36815,7 +40155,9 @@
 
 [section:is_link_local ip::address_v6::is_link_local]
 
-[indexterm2 is_link_local..ip::address_v6] Determine whether the address is link local.
+[indexterm2 is_link_local..ip::address_v6]
+Determine whether the address is link local.
+
 
   bool is_link_local() const;
 
@@ -36827,7 +40169,9 @@
 
 [section:is_loopback ip::address_v6::is_loopback]
 
-[indexterm2 is_loopback..ip::address_v6] Determine whether the address is a loopback address.
+[indexterm2 is_loopback..ip::address_v6]
+Determine whether the address is a loopback address.
+
 
   bool is_loopback() const;
 
@@ -36839,7 +40183,9 @@
 
 [section:is_multicast ip::address_v6::is_multicast]
 
-[indexterm2 is_multicast..ip::address_v6] Determine whether the address is a multicast address.
+[indexterm2 is_multicast..ip::address_v6]
+Determine whether the address is a multicast address.
+
 
   bool is_multicast() const;
 
@@ -36851,7 +40197,9 @@
 
 [section:is_multicast_global ip::address_v6::is_multicast_global]
 
-[indexterm2 is_multicast_global..ip::address_v6] Determine whether the address is a global multicast address.
+[indexterm2 is_multicast_global..ip::address_v6]
+Determine whether the address is a global multicast address.
+
 
   bool is_multicast_global() const;
 
@@ -36863,7 +40211,9 @@
 
 [section:is_multicast_link_local ip::address_v6::is_multicast_link_local]
 
-[indexterm2 is_multicast_link_local..ip::address_v6] Determine whether the address is a link-local multicast address.
+[indexterm2 is_multicast_link_local..ip::address_v6]
+Determine whether the address is a link-local multicast address.
+
 
   bool is_multicast_link_local() const;
 
@@ -36875,7 +40225,9 @@
 
 [section:is_multicast_node_local ip::address_v6::is_multicast_node_local]
 
-[indexterm2 is_multicast_node_local..ip::address_v6] Determine whether the address is a node-local multicast address.
+[indexterm2 is_multicast_node_local..ip::address_v6]
+Determine whether the address is a node-local multicast address.
+
 
   bool is_multicast_node_local() const;
 
@@ -36887,7 +40239,9 @@
 
 [section:is_multicast_org_local ip::address_v6::is_multicast_org_local]
 
-[indexterm2 is_multicast_org_local..ip::address_v6] Determine whether the address is a org-local multicast address.
+[indexterm2 is_multicast_org_local..ip::address_v6]
+Determine whether the address is a org-local multicast address.
+
 
   bool is_multicast_org_local() const;
 
@@ -36899,7 +40253,9 @@
 
 [section:is_multicast_site_local ip::address_v6::is_multicast_site_local]
 
-[indexterm2 is_multicast_site_local..ip::address_v6] Determine whether the address is a site-local multicast address.
+[indexterm2 is_multicast_site_local..ip::address_v6]
+Determine whether the address is a site-local multicast address.
+
 
   bool is_multicast_site_local() const;
 
@@ -36911,7 +40267,9 @@
 
 [section:is_site_local ip::address_v6::is_site_local]
 
-[indexterm2 is_site_local..ip::address_v6] Determine whether the address is site local.
+[indexterm2 is_site_local..ip::address_v6]
+Determine whether the address is site local.
+
 
   bool is_site_local() const;
 
@@ -36923,7 +40281,9 @@
 
 [section:is_unspecified ip::address_v6::is_unspecified]
 
-[indexterm2 is_unspecified..ip::address_v6] Determine whether the address is unspecified.
+[indexterm2 is_unspecified..ip::address_v6]
+Determine whether the address is unspecified.
+
 
   bool is_unspecified() const;
 
@@ -36935,7 +40295,9 @@
 
 [section:is_v4_compatible ip::address_v6::is_v4_compatible]
 
-[indexterm2 is_v4_compatible..ip::address_v6] Determine whether the address is an IPv4-compatible address.
+[indexterm2 is_v4_compatible..ip::address_v6]
+Determine whether the address is an IPv4-compatible address.
+
 
   bool is_v4_compatible() const;
 
@@ -36947,7 +40309,9 @@
 
 [section:is_v4_mapped ip::address_v6::is_v4_mapped]
 
-[indexterm2 is_v4_mapped..ip::address_v6] Determine whether the address is a mapped IPv4 address.
+[indexterm2 is_v4_mapped..ip::address_v6]
+Determine whether the address is a mapped IPv4 address.
+
 
   bool is_v4_mapped() const;
 
@@ -36959,7 +40323,9 @@
 
 [section:loopback ip::address_v6::loopback]
 
-[indexterm2 loopback..ip::address_v6] Obtain an address object that represents the loopback address.
+[indexterm2 loopback..ip::address_v6]
+Obtain an address object that represents the loopback address.
+
 
   static address_v6 loopback();
 
@@ -36971,7 +40337,9 @@
 
 [section:operator_not__eq_ ip::address_v6::operator!=]
 
-[indexterm2 operator!=..ip::address_v6] Compare two addresses for inequality.
+[indexterm2 operator!=..ip::address_v6]
+Compare two addresses for inequality.
+
 
   friend bool operator!=(
       const address_v6 & a1,
@@ -36991,7 +40359,9 @@
 
 [section:operator_lt_ ip::address_v6::operator<]
 
-[indexterm2 operator<..ip::address_v6] Compare addresses for ordering.
+[indexterm2 operator<..ip::address_v6]
+Compare addresses for ordering.
+
 
   friend bool operator<(
       const address_v6 & a1,
@@ -37011,7 +40381,9 @@
 
 [section:operator_lt__lt_ ip::address_v6::operator<<]
 
-[indexterm2 operator<<..ip::address_v6] Output an address as a string.
+[indexterm2 operator<<..ip::address_v6]
+Output an address as a string.
+
 
   template<
       typename Elem,
@@ -37035,19 +40407,23 @@
 
 ]
 
+
 [heading Return Value]
       
 The output stream.
 
 
 
+
 [endsect]
 
 
 
 [section:operator_lt__eq_ ip::address_v6::operator<=]
 
-[indexterm2 operator<=..ip::address_v6] Compare addresses for ordering.
+[indexterm2 operator<=..ip::address_v6]
+Compare addresses for ordering.
+
 
   friend bool operator<=(
       const address_v6 & a1,
@@ -37067,7 +40443,9 @@
 
 [section:operator_eq_ ip::address_v6::operator=]
 
-[indexterm2 operator=..ip::address_v6] Assign from another address.
+[indexterm2 operator=..ip::address_v6]
+Assign from another address.
+
 
   address_v6 & operator=(
       const address_v6 & other);
@@ -37080,7 +40458,9 @@
 
 [section:operator_eq__eq_ ip::address_v6::operator==]
 
-[indexterm2 operator==..ip::address_v6] Compare two addresses for equality.
+[indexterm2 operator==..ip::address_v6]
+Compare two addresses for equality.
+
 
   friend bool operator==(
       const address_v6 & a1,
@@ -37100,7 +40480,9 @@
 
 [section:operator_gt_ ip::address_v6::operator>]
 
-[indexterm2 operator>..ip::address_v6] Compare addresses for ordering.
+[indexterm2 operator>..ip::address_v6]
+Compare addresses for ordering.
+
 
   friend bool operator>(
       const address_v6 & a1,
@@ -37120,7 +40502,9 @@
 
 [section:operator_gt__eq_ ip::address_v6::operator>=]
 
-[indexterm2 operator>=..ip::address_v6] Compare addresses for ordering.
+[indexterm2 operator>=..ip::address_v6]
+Compare addresses for ordering.
+
 
   friend bool operator>=(
       const address_v6 & a1,
@@ -37139,7 +40523,9 @@
 
 [section:scope_id ip::address_v6::scope_id]
 
-[indexterm2 scope_id..ip::address_v6] The scope ID of the address.
+[indexterm2 scope_id..ip::address_v6]
+The scope ID of the address.
+
 
   unsigned long ``[link boost_asio.reference.ip__address_v6.scope_id.overload1 scope_id]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.scope_id.overload1 more...]]``
@@ -37151,8 +40537,10 @@
 
 [section:overload1 ip::address_v6::scope_id (1 of 2 overloads)]
 
+
 The scope ID of the address.
 
+
   unsigned long scope_id() const;
 
 
@@ -37165,8 +40553,10 @@
 
 [section:overload2 ip::address_v6::scope_id (2 of 2 overloads)]
 
+
 The scope ID of the address.
 
+
   void scope_id(
       unsigned long id);
 
@@ -37182,7 +40572,9 @@
 
 [section:to_bytes ip::address_v6::to_bytes]
 
-[indexterm2 to_bytes..ip::address_v6] Get the address in bytes.
+[indexterm2 to_bytes..ip::address_v6]
+Get the address in bytes.
+
 
   bytes_type to_bytes() const;
 
@@ -37193,7 +40585,9 @@
 
 [section:to_string ip::address_v6::to_string]
 
-[indexterm2 to_string..ip::address_v6] Get the address as a string.
+[indexterm2 to_string..ip::address_v6]
+Get the address as a string.
+
 
   std::string ``[link boost_asio.reference.ip__address_v6.to_string.overload1 to_string]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.to_string.overload1 more...]]``
@@ -37205,8 +40599,10 @@
 
 [section:overload1 ip::address_v6::to_string (1 of 2 overloads)]
 
+
 Get the address as a string.
 
+
   std::string to_string() const;
 
 
@@ -37217,8 +40613,10 @@
 
 [section:overload2 ip::address_v6::to_string (2 of 2 overloads)]
 
+
 Get the address as a string.
 
+
   std::string to_string(
       boost::system::error_code & ec) const;
 
@@ -37232,7 +40630,9 @@
 
 [section:to_v4 ip::address_v6::to_v4]
 
-[indexterm2 to_v4..ip::address_v6] Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address.
+[indexterm2 to_v4..ip::address_v6]
+Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address.
+
 
   address_v4 to_v4() const;
 
@@ -37244,7 +40644,9 @@
 
 [section:v4_compatible ip::address_v6::v4_compatible]
 
-[indexterm2 v4_compatible..ip::address_v6] Create an IPv4-compatible IPv6 address.
+[indexterm2 v4_compatible..ip::address_v6]
+Create an IPv4-compatible IPv6 address.
+
 
   static address_v6 v4_compatible(
       const address_v4 & addr);
@@ -37257,7 +40659,9 @@
 
 [section:v4_mapped ip::address_v6::v4_mapped]
 
-[indexterm2 v4_mapped..ip::address_v6] Create an IPv4-mapped IPv6 address.
+[indexterm2 v4_mapped..ip::address_v6]
+Create an IPv4-mapped IPv6 address.
+
 
   static address_v6 v4_mapped(
       const address_v4 & addr);
@@ -37272,8 +40676,10 @@
 
 [section:ip__basic_endpoint ip::basic_endpoint]
 
+
 Describes an endpoint for a version-independent IP socket.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
   class basic_endpoint
@@ -37392,15 +40798,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_endpoint ip::basic_endpoint] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -37411,13 +40818,17 @@
 
 [section:address ip::basic_endpoint::address]
 
-[indexterm2 address..ip::basic_endpoint] Get the IP address associated with the endpoint.
+[indexterm2 address..ip::basic_endpoint]
+Get the IP address associated with the endpoint.
+
 
   boost::asio::ip::address ``[link boost_asio.reference.ip__basic_endpoint.address.overload1 address]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload1 more...]]``
 
+
 Set the IP address associated with the endpoint.
 
+
   void ``[link boost_asio.reference.ip__basic_endpoint.address.overload2 address]``(
       const boost::asio::ip::address & addr);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload2 more...]]``
@@ -37425,8 +40836,10 @@
 
 [section:overload1 ip::basic_endpoint::address (1 of 2 overloads)]
 
+
 Get the IP address associated with the endpoint.
 
+
   boost::asio::ip::address address() const;
 
 
@@ -37437,8 +40850,10 @@
 
 [section:overload2 ip::basic_endpoint::address (2 of 2 overloads)]
 
+
 Set the IP address associated with the endpoint.
 
+
   void address(
       const boost::asio::ip::address & addr);
 
@@ -37451,27 +40866,35 @@
 
 [section:basic_endpoint ip::basic_endpoint::basic_endpoint]
 
-[indexterm2 basic_endpoint..ip::basic_endpoint] Default constructor.
+[indexterm2 basic_endpoint..ip::basic_endpoint]
+Default constructor.
+
 
   ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 more...]]``
 
-Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+
+Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
+
 
   ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
       const InternetProtocol & protocol,
       unsigned short port_num);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 more...]]``
 
+
 Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
 
+
   ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
       const boost::asio::ip::address & addr,
       unsigned short port_num);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 more...]]``
 
+
 Copy constructor.
 
+
   ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
       const basic_endpoint & other);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 more...]]``
@@ -37479,8 +40902,10 @@
 
 [section:overload1 ip::basic_endpoint::basic_endpoint (1 of 4 overloads)]
 
+
 Default constructor.
 
+
   basic_endpoint();
 
 
@@ -37491,7 +40916,9 @@
 
 [section:overload2 ip::basic_endpoint::basic_endpoint (2 of 4 overloads)]
 
-Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+
+Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
+
 
   basic_endpoint(
       const InternetProtocol & protocol,
@@ -37522,8 +40949,10 @@
 
 [section:overload3 ip::basic_endpoint::basic_endpoint (3 of 4 overloads)]
 
+
 Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
 
+
   basic_endpoint(
       const boost::asio::ip::address & addr,
       unsigned short port_num);
@@ -37536,8 +40965,10 @@
 
 [section:overload4 ip::basic_endpoint::basic_endpoint (4 of 4 overloads)]
 
+
 Copy constructor.
 
+
   basic_endpoint(
       const basic_endpoint & other);
 
@@ -37551,7 +40982,9 @@
 
 [section:capacity ip::basic_endpoint::capacity]
 
-[indexterm2 capacity..ip::basic_endpoint] Get the capacity of the endpoint in the native type.
+[indexterm2 capacity..ip::basic_endpoint]
+Get the capacity of the endpoint in the native type.
+
 
   std::size_t capacity() const;
 
@@ -37562,7 +40995,9 @@
 
 [section:data ip::basic_endpoint::data]
 
-[indexterm2 data..ip::basic_endpoint] Get the underlying endpoint in the native type.
+[indexterm2 data..ip::basic_endpoint]
+Get the underlying endpoint in the native type.
+
 
   data_type * ``[link boost_asio.reference.ip__basic_endpoint.data.overload1 data]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.data.overload1 more...]]``
@@ -37573,8 +41008,10 @@
 
 [section:overload1 ip::basic_endpoint::data (1 of 2 overloads)]
 
+
 Get the underlying endpoint in the native type.
 
+
   data_type * data();
 
 
@@ -37585,8 +41022,10 @@
 
 [section:overload2 ip::basic_endpoint::data (2 of 2 overloads)]
 
+
 Get the underlying endpoint in the native type.
 
+
   const data_type * data() const;
 
 
@@ -37599,7 +41038,9 @@
 
 [section:data_type ip::basic_endpoint::data_type]
 
-[indexterm2 data_type..ip::basic_endpoint] The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+[indexterm2 data_type..ip::basic_endpoint]
+The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+
 
   typedef implementation_defined data_type;
 
@@ -37618,7 +41059,9 @@
 
 [section:operator_not__eq_ ip::basic_endpoint::operator!=]
 
-[indexterm2 operator!=..ip::basic_endpoint] Compare two endpoints for inequality.
+[indexterm2 operator!=..ip::basic_endpoint]
+Compare two endpoints for inequality.
+
 
   friend bool operator!=(
       const basic_endpoint< InternetProtocol > & e1,
@@ -37638,7 +41081,9 @@
 
 [section:operator_lt_ ip::basic_endpoint::operator<]
 
-[indexterm2 operator<..ip::basic_endpoint] Compare endpoints for ordering.
+[indexterm2 operator<..ip::basic_endpoint]
+Compare endpoints for ordering.
+
 
   friend bool operator<(
       const basic_endpoint< InternetProtocol > & e1,
@@ -37658,7 +41103,9 @@
 
 [section:operator_lt__lt_ ip::basic_endpoint::operator<<]
 
-[indexterm2 operator<<..ip::basic_endpoint] Output an endpoint as a string.
+[indexterm2 operator<<..ip::basic_endpoint]
+Output an endpoint as a string.
+
 
   std::basic_ostream< Elem, Traits > & operator<<(
       std::basic_ostream< Elem, Traits > & os,
@@ -37679,19 +41126,23 @@
 
 ]
 
+
 [heading Return Value]
       
 The output stream.
 
 
 
+
 [endsect]
 
 
 
 [section:operator_eq_ ip::basic_endpoint::operator=]
 
-[indexterm2 operator=..ip::basic_endpoint] Assign from another endpoint.
+[indexterm2 operator=..ip::basic_endpoint]
+Assign from another endpoint.
+
 
   basic_endpoint & operator=(
       const basic_endpoint & other);
@@ -37704,7 +41155,9 @@
 
 [section:operator_eq__eq_ ip::basic_endpoint::operator==]
 
-[indexterm2 operator==..ip::basic_endpoint] Compare two endpoints for equality.
+[indexterm2 operator==..ip::basic_endpoint]
+Compare two endpoints for equality.
+
 
   friend bool operator==(
       const basic_endpoint< InternetProtocol > & e1,
@@ -37723,13 +41176,17 @@
 
 [section:port ip::basic_endpoint::port]
 
-[indexterm2 port..ip::basic_endpoint] Get the port associated with the endpoint. The port number is always in the host's byte order.
+[indexterm2 port..ip::basic_endpoint]
+Get the port associated with the endpoint. The port number is always in the host's byte order.
+
 
   unsigned short ``[link boost_asio.reference.ip__basic_endpoint.port.overload1 port]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload1 more...]]``
 
+
 Set the port associated with the endpoint. The port number is always in the host's byte order.
 
+
   void ``[link boost_asio.reference.ip__basic_endpoint.port.overload2 port]``(
       unsigned short port_num);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload2 more...]]``
@@ -37737,8 +41194,10 @@
 
 [section:overload1 ip::basic_endpoint::port (1 of 2 overloads)]
 
+
 Get the port associated with the endpoint. The port number is always in the host's byte order.
 
+
   unsigned short port() const;
 
 
@@ -37749,8 +41208,10 @@
 
 [section:overload2 ip::basic_endpoint::port (2 of 2 overloads)]
 
+
 Set the port associated with the endpoint. The port number is always in the host's byte order.
 
+
   void port(
       unsigned short port_num);
 
@@ -37764,7 +41225,9 @@
 
 [section:protocol ip::basic_endpoint::protocol]
 
-[indexterm2 protocol..ip::basic_endpoint] The protocol associated with the endpoint.
+[indexterm2 protocol..ip::basic_endpoint]
+The protocol associated with the endpoint.
+
 
   protocol_type protocol() const;
 
@@ -37776,7 +41239,9 @@
 
 [section:protocol_type ip::basic_endpoint::protocol_type]
 
-[indexterm2 protocol_type..ip::basic_endpoint] The protocol type associated with the endpoint.
+[indexterm2 protocol_type..ip::basic_endpoint]
+The protocol type associated with the endpoint.
+
 
   typedef InternetProtocol protocol_type;
 
@@ -37795,7 +41260,9 @@
 
 [section:resize ip::basic_endpoint::resize]
 
-[indexterm2 resize..ip::basic_endpoint] Set the underlying size of the endpoint in the native type.
+[indexterm2 resize..ip::basic_endpoint]
+Set the underlying size of the endpoint in the native type.
+
 
   void resize(
       std::size_t size);
@@ -37808,7 +41275,9 @@
 
 [section:size ip::basic_endpoint::size]
 
-[indexterm2 size..ip::basic_endpoint] Get the underlying size of the endpoint in the native type.
+[indexterm2 size..ip::basic_endpoint]
+Get the underlying size of the endpoint in the native type.
+
 
   std::size_t size() const;
 
@@ -37822,8 +41291,10 @@
 
 [section:ip__basic_resolver ip::basic_resolver]
 
+
 Provides endpoint resolution functionality.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``,
       typename ``[link boost_asio.reference.ResolverService ResolverService]`` = resolver_service<InternetProtocol>>
@@ -37935,14 +41406,15 @@
 
 ]
 
-The basic_resolver class template provides the ability to resolve a query to a list of endpoints.
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -37953,7 +41425,9 @@
 
 [section:async_resolve ip::basic_resolver::async_resolve]
 
-[indexterm2 async_resolve..ip::basic_resolver] Asynchronously perform forward resolution of a query to a list of entries.
+[indexterm2 async_resolve..ip::basic_resolver]
+Asynchronously perform forward resolution of a query to a list of entries.
+
 
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
@@ -37962,8 +41436,10 @@
       ResolveHandler handler);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 more...]]``
 
+
 Asynchronously perform reverse resolution of an endpoint to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
   void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 async_resolve]``(
@@ -37974,8 +41450,10 @@
 
 [section:overload1 ip::basic_resolver::async_resolve (1 of 2 overloads)]
 
+
 Asynchronously perform forward resolution of a query to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
   void async_resolve(
@@ -38002,10 +41480,11 @@
                                              // of endpoint entries.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38019,8 +41498,10 @@
 
 [section:overload2 ip::basic_resolver::async_resolve (2 of 2 overloads)]
 
+
 Asynchronously perform reverse resolution of an endpoint to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
   void async_resolve(
@@ -38047,10 +41528,11 @@
                                              // of endpoint entries.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38066,13 +41548,15 @@
 
 [section:basic_resolver ip::basic_resolver::basic_resolver]
 
-[indexterm2 basic_resolver..ip::basic_resolver] Constructor.
+[indexterm2 basic_resolver..ip::basic_resolver]
+Constructor.
+
 
   basic_resolver(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a basic_resolver.
+This constructor creates a [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`].
 
 
 [heading Parameters]
@@ -38080,24 +41564,27 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the resolver will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the resolver will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:cancel ip::basic_resolver::cancel]
 
-[indexterm2 cancel..ip::basic_resolver] Cancel any asynchronous operations that are waiting on the resolver.
+[indexterm2 cancel..ip::basic_resolver]
+Cancel any asynchronous operations that are waiting on the resolver.
+
 
   void cancel();
 
 
-This function forces the completion of any pending asynchronous operations on the host resolver. The handler for each cancelled operation will be invoked with the boost::asio::error::operation\_aborted error code.
+This function forces the completion of any pending asynchronous operations on the host resolver. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [endsect]
@@ -38106,7 +41593,9 @@
 
 [section:endpoint_type ip::basic_resolver::endpoint_type]
 
-[indexterm2 endpoint_type..ip::basic_resolver] The endpoint type.
+[indexterm2 endpoint_type..ip::basic_resolver]
+The endpoint type.
+
 
   typedef InternetProtocol::endpoint endpoint_type;
 
@@ -38128,17 +41617,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..ip::basic_resolver] Get the io_service associated with the object.
+[indexterm2 get_io_service..ip::basic_resolver]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -38151,7 +41643,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..ip::basic_resolver] The underlying implementation of the I/O object.
+[indexterm2 implementation..ip::basic_resolver]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -38166,7 +41660,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..ip::basic_resolver] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..ip::basic_resolver]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -38188,17 +41684,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..ip::basic_resolver] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..ip::basic_resolver]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -38208,7 +41707,9 @@
 
 [section:iterator ip::basic_resolver::iterator]
 
-[indexterm2 iterator..ip::basic_resolver] The iterator type.
+[indexterm2 iterator..ip::basic_resolver]
+The iterator type.
+
 
   typedef InternetProtocol::resolver_iterator iterator;
 
@@ -38227,7 +41728,9 @@
 
 [section:protocol_type ip::basic_resolver::protocol_type]
 
-[indexterm2 protocol_type..ip::basic_resolver] The protocol type.
+[indexterm2 protocol_type..ip::basic_resolver]
+The protocol type.
+
 
   typedef InternetProtocol protocol_type;
 
@@ -38246,7 +41749,9 @@
 
 [section:query ip::basic_resolver::query]
 
-[indexterm2 query..ip::basic_resolver] The query type.
+[indexterm2 query..ip::basic_resolver]
+The query type.
+
 
   typedef InternetProtocol::resolver_query query;
 
@@ -38264,7 +41769,9 @@
 
 [section:resolve ip::basic_resolver::resolve]
 
-[indexterm2 resolve..ip::basic_resolver] Perform forward resolution of a query to a list of entries.
+[indexterm2 resolve..ip::basic_resolver]
+Perform forward resolution of a query to a list of entries.
+
 
   iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload1 resolve]``(
       const query & q);
@@ -38275,8 +41782,10 @@
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload2 more...]]``
 
+
 Perform reverse resolution of an endpoint to a list of entries.
 
+
   iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload3 resolve]``(
       const endpoint_type & e);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload3 more...]]``
@@ -38289,8 +41798,10 @@
 
 [section:overload1 ip::basic_resolver::resolve (1 of 4 overloads)]
 
+
 Perform forward resolution of a query to a list of entries.
 
+
   iterator resolve(
       const query & q);
 
@@ -38307,10 +41818,12 @@
 
 ]
 
+
 [heading Return Value]
       
 A forward-only iterator that can be used to traverse the list of endpoint entries.
 
+
 [heading Exceptions]
     
 
@@ -38320,6 +41833,7 @@
 
 ]
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38333,8 +41847,10 @@
 
 [section:overload2 ip::basic_resolver::resolve (2 of 4 overloads)]
 
+
 Perform forward resolution of a query to a list of entries.
 
+
   iterator resolve(
       const query & q,
       boost::system::error_code & ec);
@@ -38354,10 +41870,12 @@
 
 ]
 
+
 [heading Return Value]
       
 A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38371,8 +41889,10 @@
 
 [section:overload3 ip::basic_resolver::resolve (3 of 4 overloads)]
 
+
 Perform reverse resolution of an endpoint to a list of entries.
 
+
   iterator resolve(
       const endpoint_type & e);
 
@@ -38389,10 +41909,12 @@
 
 ]
 
+
 [heading Return Value]
       
 A forward-only iterator that can be used to traverse the list of endpoint entries.
 
+
 [heading Exceptions]
     
 
@@ -38402,6 +41924,7 @@
 
 ]
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38415,8 +41938,10 @@
 
 [section:overload4 ip::basic_resolver::resolve (4 of 4 overloads)]
 
+
 Perform reverse resolution of an endpoint to a list of entries.
 
+
   iterator resolve(
       const endpoint_type & e,
       boost::system::error_code & ec);
@@ -38436,10 +41961,12 @@
 
 ]
 
+
 [heading Return Value]
       
 A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
 
+
 [heading Remarks]
       
 A default constructed iterator represents the end of the list.
@@ -38458,7 +41985,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..ip::basic_resolver] The service associated with the I/O object.
+[indexterm2 service..ip::basic_resolver]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -38473,7 +42002,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..ip::basic_resolver] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..ip::basic_resolver]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef ResolverService service_type;
 
@@ -38494,8 +42025,10 @@
 
 [section:ip__basic_resolver_entry ip::basic_resolver_entry]
 
+
 An entry produced by a resolver.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
   class basic_resolver_entry
@@ -38554,15 +42087,15 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_entry ip::basic_resolver_entry] class template describes an entry as returned by a resolver.
+The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -38573,13 +42106,17 @@
 
 [section:basic_resolver_entry ip::basic_resolver_entry::basic_resolver_entry]
 
-[indexterm2 basic_resolver_entry..ip::basic_resolver_entry] Default constructor.
+[indexterm2 basic_resolver_entry..ip::basic_resolver_entry]
+Default constructor.
+
 
   ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 basic_resolver_entry]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 more...]]``
 
+
 Construct with specified endpoint, host name and service name.
 
+
   ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload2 basic_resolver_entry]``(
       const endpoint_type & endpoint,
       const std::string & host_name,
@@ -38589,8 +42126,10 @@
 
 [section:overload1 ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads)]
 
+
 Default constructor.
 
+
   basic_resolver_entry();
 
 
@@ -38601,8 +42140,10 @@
 
 [section:overload2 ip::basic_resolver_entry::basic_resolver_entry (2 of 2 overloads)]
 
+
 Construct with specified endpoint, host name and service name.
 
+
   basic_resolver_entry(
       const endpoint_type & endpoint,
       const std::string & host_name,
@@ -38618,7 +42159,9 @@
 
 [section:endpoint ip::basic_resolver_entry::endpoint]
 
-[indexterm2 endpoint..ip::basic_resolver_entry] Get the endpoint associated with the entry.
+[indexterm2 endpoint..ip::basic_resolver_entry]
+Get the endpoint associated with the entry.
+
 
   endpoint_type endpoint() const;
 
@@ -38630,7 +42173,9 @@
 
 [section:endpoint_type ip::basic_resolver_entry::endpoint_type]
 
-[indexterm2 endpoint_type..ip::basic_resolver_entry] The endpoint type associated with the endpoint entry.
+[indexterm2 endpoint_type..ip::basic_resolver_entry]
+The endpoint type associated with the endpoint entry.
+
 
   typedef InternetProtocol::endpoint endpoint_type;
 
@@ -38649,7 +42194,9 @@
 
 [section:host_name ip::basic_resolver_entry::host_name]
 
-[indexterm2 host_name..ip::basic_resolver_entry] Get the host name associated with the entry.
+[indexterm2 host_name..ip::basic_resolver_entry]
+Get the host name associated with the entry.
+
 
   std::string host_name() const;
 
@@ -38661,7 +42208,9 @@
 
 [section:operator_endpoint_type ip::basic_resolver_entry::operator endpoint_type]
 
-[indexterm2 operator endpoint_type..ip::basic_resolver_entry] Convert to the endpoint associated with the entry.
+[indexterm2 operator endpoint_type..ip::basic_resolver_entry]
+Convert to the endpoint associated with the entry.
+
 
   operator endpoint_type() const;
 
@@ -38673,7 +42222,9 @@
 
 [section:protocol_type ip::basic_resolver_entry::protocol_type]
 
-[indexterm2 protocol_type..ip::basic_resolver_entry] The protocol type associated with the endpoint entry.
+[indexterm2 protocol_type..ip::basic_resolver_entry]
+The protocol type associated with the endpoint entry.
+
 
   typedef InternetProtocol protocol_type;
 
@@ -38692,7 +42243,9 @@
 
 [section:service_name ip::basic_resolver_entry::service_name]
 
-[indexterm2 service_name..ip::basic_resolver_entry] Get the service name associated with the entry.
+[indexterm2 service_name..ip::basic_resolver_entry]
+Get the service name associated with the entry.
+
 
   std::string service_name() const;
 
@@ -38706,8 +42259,10 @@
 
 [section:ip__basic_resolver_iterator ip::basic_resolver_iterator]
 
+
 An iterator over the entries produced by a resolver.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
   class basic_resolver_iterator
@@ -38731,8 +42286,7 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_iterator ip::basic_resolver_iterator] class template is used to define iterators over the results returned by a resolver.
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
 The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
@@ -38744,9 +42298,10 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -38758,7 +42313,9 @@
 
 [section:basic_resolver_iterator ip::basic_resolver_iterator::basic_resolver_iterator]
 
-[indexterm2 basic_resolver_iterator..ip::basic_resolver_iterator] Default constructor creates an end iterator.
+[indexterm2 basic_resolver_iterator..ip::basic_resolver_iterator]
+Default constructor creates an end iterator.
+
 
   basic_resolver_iterator();
 
@@ -38769,7 +42326,9 @@
 
 [section:create ip::basic_resolver_iterator::create]
 
-[indexterm2 create..ip::basic_resolver_iterator] Create an iterator from an addrinfo list returned by getaddrinfo.
+[indexterm2 create..ip::basic_resolver_iterator]
+Create an iterator from an addrinfo list returned by getaddrinfo.
+
 
   static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 create]``(
       boost::asio::detail::addrinfo_type * address_info,
@@ -38777,8 +42336,10 @@
       const std::string & service_name);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 more...]]``
 
+
 Create an iterator from an endpoint, host name and service name.
 
+
   static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 create]``(
       const typename InternetProtocol::endpoint & endpoint,
       const std::string & host_name,
@@ -38788,8 +42349,10 @@
 
 [section:overload1 ip::basic_resolver_iterator::create (1 of 2 overloads)]
 
+
 Create an iterator from an addrinfo list returned by getaddrinfo.
 
+
   static basic_resolver_iterator create(
       boost::asio::detail::addrinfo_type * address_info,
       const std::string & host_name,
@@ -38803,8 +42366,10 @@
 
 [section:overload2 ip::basic_resolver_iterator::create (2 of 2 overloads)]
 
+
 Create an iterator from an endpoint, host name and service name.
 
+
   static basic_resolver_iterator create(
       const typename InternetProtocol::endpoint & endpoint,
       const std::string & host_name,
@@ -38822,8 +42387,10 @@
 
 [section:ip__basic_resolver_query ip::basic_resolver_query]
 
+
 An query to be passed to a resolver.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
   class basic_resolver_query :
@@ -38916,15 +42483,15 @@
 
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_query ip::basic_resolver_query] class template describes a query that can be passed to a resolver.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -38939,7 +42506,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 address_configured..ip::basic_resolver_query] Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
+[indexterm2 address_configured..ip::basic_resolver_query]
+Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
+
 
   static const int address_configured = implementation_defined;
 
@@ -38954,7 +42523,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 all_matching..ip::basic_resolver_query] If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
+[indexterm2 all_matching..ip::basic_resolver_query]
+If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
+
 
   static const int all_matching = implementation_defined;
 
@@ -38965,31 +42536,39 @@
 
 [section:basic_resolver_query ip::basic_resolver_query::basic_resolver_query]
 
-[indexterm2 basic_resolver_query..ip::basic_resolver_query] Construct with specified service name for any protocol.
+[indexterm2 basic_resolver_query..ip::basic_resolver_query]
+Construct with specified service name for any protocol.
+
 
   ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 basic_resolver_query]``(
       const std::string & service_name,
       int flags = passive|address_configured);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 more...]]``
 
+
 Construct with specified service name for a given protocol.
 
+
   ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 basic_resolver_query]``(
       const protocol_type & protocol,
       const std::string & service_name,
       int flags = passive|address_configured);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 more...]]``
 
+
 Construct with specified host name and service name for any protocol.
 
+
   ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 basic_resolver_query]``(
       const std::string & host_name,
       const std::string & service_name,
       int flags = address_configured);
   `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 more...]]``
 
+
 Construct with specified host name and service name for a given protocol.
 
+
   ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload4 basic_resolver_query]``(
       const protocol_type & protocol,
       const std::string & host_name,
@@ -39000,8 +42579,10 @@
 
 [section:overload1 ip::basic_resolver_query::basic_resolver_query (1 of 4 overloads)]
 
+
 Construct with specified service name for any protocol.
 
+
   basic_resolver_query(
       const std::string & service_name,
       int flags = passive|address_configured);
@@ -39014,8 +42595,10 @@
 
 [section:overload2 ip::basic_resolver_query::basic_resolver_query (2 of 4 overloads)]
 
+
 Construct with specified service name for a given protocol.
 
+
   basic_resolver_query(
       const protocol_type & protocol,
       const std::string & service_name,
@@ -39029,8 +42612,10 @@
 
 [section:overload3 ip::basic_resolver_query::basic_resolver_query (3 of 4 overloads)]
 
+
 Construct with specified host name and service name for any protocol.
 
+
   basic_resolver_query(
       const std::string & host_name,
       const std::string & service_name,
@@ -39044,8 +42629,10 @@
 
 [section:overload4 ip::basic_resolver_query::basic_resolver_query (4 of 4 overloads)]
 
+
 Construct with specified host name and service name for a given protocol.
 
+
   basic_resolver_query(
       const protocol_type & protocol,
       const std::string & host_name,
@@ -39065,7 +42652,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 canonical_name..ip::basic_resolver_query] Determine the canonical name of the host specified in the query.
+[indexterm2 canonical_name..ip::basic_resolver_query]
+Determine the canonical name of the host specified in the query.
+
 
   static const int canonical_name = implementation_defined;
 
@@ -39077,7 +42666,9 @@
 
 [section:hints ip::basic_resolver_query::hints]
 
-[indexterm2 hints..ip::basic_resolver_query] Get the hints associated with the query.
+[indexterm2 hints..ip::basic_resolver_query]
+Get the hints associated with the query.
+
 
   const boost::asio::detail::addrinfo_type & hints() const;
 
@@ -39089,7 +42680,9 @@
 
 [section:host_name ip::basic_resolver_query::host_name]
 
-[indexterm2 host_name..ip::basic_resolver_query] Get the host name associated with the query.
+[indexterm2 host_name..ip::basic_resolver_query]
+Get the host name associated with the query.
+
 
   std::string host_name() const;
 
@@ -39104,7 +42697,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 numeric_host..ip::basic_resolver_query] Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
+[indexterm2 numeric_host..ip::basic_resolver_query]
+Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
+
 
   static const int numeric_host = implementation_defined;
 
@@ -39119,7 +42714,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 numeric_service..ip::basic_resolver_query] Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+[indexterm2 numeric_service..ip::basic_resolver_query]
+Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+
 
   static const int numeric_service = implementation_defined;
 
@@ -39134,7 +42731,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 passive..ip::basic_resolver_query] Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+[indexterm2 passive..ip::basic_resolver_query]
+Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+
 
   static const int passive = implementation_defined;
 
@@ -39146,7 +42745,9 @@
 
 [section:protocol_type ip::basic_resolver_query::protocol_type]
 
-[indexterm2 protocol_type..ip::basic_resolver_query] The protocol type associated with the endpoint query.
+[indexterm2 protocol_type..ip::basic_resolver_query]
+The protocol type associated with the endpoint query.
+
 
   typedef InternetProtocol protocol_type;
 
@@ -39165,7 +42766,9 @@
 
 [section:service_name ip::basic_resolver_query::service_name]
 
-[indexterm2 service_name..ip::basic_resolver_query] Get the service name associated with the query.
+[indexterm2 service_name..ip::basic_resolver_query]
+Get the service name associated with the query.
+
 
   std::string service_name() const;
 
@@ -39180,7 +42783,9 @@
 
 ['Inherited from ip::resolver_query_base.]
 
-[indexterm2 v4_mapped..ip::basic_resolver_query] If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+[indexterm2 v4_mapped..ip::basic_resolver_query]
+If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+
 
   static const int v4_mapped = implementation_defined;
 
@@ -39194,7 +42799,9 @@
 
 [section:ip__host_name ip::host_name]
 
-[indexterm1 ip::host_name] Get the current host name.
+[indexterm1 ip::host_name]
+Get the current host name.
+
     
   std::string ``[link boost_asio.reference.ip__host_name.overload1 host_name]``();
   `` [''''&raquo;''' [link boost_asio.reference.ip__host_name.overload1 more...]]``
@@ -39212,8 +42819,10 @@
 
 [section:overload1 ip::host_name (1 of 2 overloads)]
 
+
 Get the current host name.
 
+
   std::string host_name();
 
 
@@ -39224,8 +42833,10 @@
 
 [section:overload2 ip::host_name (2 of 2 overloads)]
 
+
 Get the current host name.
 
+
   std::string host_name(
       boost::system::error_code & ec);
 
@@ -39238,8 +42849,10 @@
 
 [section:ip__icmp ip::icmp]
 
+
 Encapsulates the flags needed for ICMP.
 
+
   class icmp
 
 
@@ -39331,15 +42944,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__icmp ip::icmp] class contains flags necessary for ICMP sockets.
+The [link boost_asio.reference.ip__icmp `ip::icmp`] class contains flags necessary for ICMP sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -39351,7 +42965,9 @@
 
 [section:endpoint ip::icmp::endpoint]
 
-[indexterm2 endpoint..ip::icmp] The type of a ICMP endpoint.
+[indexterm2 endpoint..ip::icmp]
+The type of a ICMP endpoint.
+
 
   typedef basic_endpoint< icmp > endpoint;
 
@@ -39469,15 +43085,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_endpoint ip::basic_endpoint] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -39494,7 +43111,9 @@
 
 [section:family ip::icmp::family]
 
-[indexterm2 family..ip::icmp] Obtain an identifier for the protocol family.
+[indexterm2 family..ip::icmp]
+Obtain an identifier for the protocol family.
+
 
   int family() const;
 
@@ -39506,7 +43125,9 @@
 
 [section:operator_not__eq_ ip::icmp::operator!=]
 
-[indexterm2 operator!=..ip::icmp] Compare two protocols for inequality.
+[indexterm2 operator!=..ip::icmp]
+Compare two protocols for inequality.
+
 
   friend bool operator!=(
       const icmp & p1,
@@ -39526,7 +43147,9 @@
 
 [section:operator_eq__eq_ ip::icmp::operator==]
 
-[indexterm2 operator==..ip::icmp] Compare two protocols for equality.
+[indexterm2 operator==..ip::icmp]
+Compare two protocols for equality.
+
 
   friend bool operator==(
       const icmp & p1,
@@ -39546,7 +43169,9 @@
 
 [section:protocol ip::icmp::protocol]
 
-[indexterm2 protocol..ip::icmp] Obtain an identifier for the protocol.
+[indexterm2 protocol..ip::icmp]
+Obtain an identifier for the protocol.
+
 
   int protocol() const;
 
@@ -39558,7 +43183,9 @@
 
 [section:resolver ip::icmp::resolver]
 
-[indexterm2 resolver..ip::icmp] The ICMP resolver type.
+[indexterm2 resolver..ip::icmp]
+The ICMP resolver type.
+
 
   typedef basic_resolver< icmp > resolver;
 
@@ -39667,14 +43294,15 @@
 
 ]
 
-The basic_resolver class template provides the ability to resolve a query to a list of endpoints.
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -39691,7 +43319,9 @@
 
 [section:resolver_iterator ip::icmp::resolver_iterator]
 
-[indexterm2 resolver_iterator..ip::icmp] The type of a resolver iterator.
+[indexterm2 resolver_iterator..ip::icmp]
+The type of a resolver iterator.
+
 
   typedef basic_resolver_iterator< icmp > resolver_iterator;
 
@@ -39714,8 +43344,7 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_iterator ip::basic_resolver_iterator] class template is used to define iterators over the results returned by a resolver.
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
 The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
@@ -39727,9 +43356,10 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -39746,7 +43376,9 @@
 
 [section:resolver_query ip::icmp::resolver_query]
 
-[indexterm2 resolver_query..ip::icmp] The type of a resolver query.
+[indexterm2 resolver_query..ip::icmp]
+The type of a resolver query.
+
 
   typedef basic_resolver_query< icmp > resolver_query;
 
@@ -39837,15 +43469,15 @@
 
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_query ip::basic_resolver_query] class template describes a query that can be passed to a resolver.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -39862,7 +43494,9 @@
 
 [section:socket ip::icmp::socket]
 
-[indexterm2 socket..ip::icmp] The ICMP socket type.
+[indexterm2 socket..ip::icmp]
+The ICMP socket type.
+
 
   typedef basic_raw_socket< icmp > socket;
 
@@ -40221,14 +43855,15 @@
 
 ]
 
-The basic_raw_socket class template provides asynchronous and blocking raw-oriented socket functionality.
+The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class template provides asynchronous and blocking raw-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -40245,7 +43880,9 @@
 
 [section:type ip::icmp::type]
 
-[indexterm2 type..ip::icmp] Obtain an identifier for the type of the protocol.
+[indexterm2 type..ip::icmp]
+Obtain an identifier for the type of the protocol.
+
 
   int type() const;
 
@@ -40257,7 +43894,9 @@
 
 [section:v4 ip::icmp::v4]
 
-[indexterm2 v4..ip::icmp] Construct to represent the IPv4 ICMP protocol.
+[indexterm2 v4..ip::icmp]
+Construct to represent the IPv4 ICMP protocol.
+
 
   static icmp v4();
 
@@ -40269,7 +43908,9 @@
 
 [section:v6 ip::icmp::v6]
 
-[indexterm2 v6..ip::icmp] Construct to represent the IPv6 ICMP protocol.
+[indexterm2 v6..ip::icmp]
+Construct to represent the IPv6 ICMP protocol.
+
 
   static icmp v6();
 
@@ -40284,7 +43925,9 @@
 
 [section:ip__multicast__enable_loopback ip::multicast::enable_loopback]
 
-[indexterm1 ip::multicast::enable_loopback] Socket option determining whether outgoing multicast packets will be received on the same socket if it is a member of the multicast group.
+[indexterm1 ip::multicast::enable_loopback]
+Socket option determining whether outgoing multicast packets will be received on the same socket if it is a member of the multicast group.
+
 
   typedef implementation_defined enable_loopback;
 
@@ -40305,6 +43948,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -40317,6 +43961,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/multicast.hpp]
@@ -40330,7 +43976,9 @@
 
 [section:ip__multicast__hops ip::multicast::hops]
 
-[indexterm1 ip::multicast::hops] Socket option for time-to-live associated with outgoing multicast packets.
+[indexterm1 ip::multicast::hops]
+Socket option for time-to-live associated with outgoing multicast packets.
+
 
   typedef implementation_defined hops;
 
@@ -40351,6 +43999,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -40363,6 +44012,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/multicast.hpp]
@@ -40376,7 +44027,9 @@
 
 [section:ip__multicast__join_group ip::multicast::join_group]
 
-[indexterm1 ip::multicast::join_group] Socket option to join a multicast group on a specified interface.
+[indexterm1 ip::multicast::join_group]
+Socket option to join a multicast group on a specified interface.
+
 
   typedef implementation_defined join_group;
 
@@ -40400,6 +44053,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/multicast.hpp]
@@ -40413,7 +44068,9 @@
 
 [section:ip__multicast__leave_group ip::multicast::leave_group]
 
-[indexterm1 ip::multicast::leave_group] Socket option to leave a multicast group on a specified interface.
+[indexterm1 ip::multicast::leave_group]
+Socket option to leave a multicast group on a specified interface.
+
 
   typedef implementation_defined leave_group;
 
@@ -40437,6 +44094,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/multicast.hpp]
@@ -40450,7 +44109,9 @@
 
 [section:ip__multicast__outbound_interface ip::multicast::outbound_interface]
 
-[indexterm1 ip::multicast::outbound_interface] Socket option for local interface to use for outgoing multicast packets.
+[indexterm1 ip::multicast::outbound_interface]
+Socket option for local interface to use for outgoing multicast packets.
+
 
   typedef implementation_defined outbound_interface;
 
@@ -40474,6 +44135,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/multicast.hpp]
@@ -40486,7 +44149,9 @@
 
 [section:ip__resolver_query_base ip::resolver_query_base]
 
-The resolver_query_base class is used as a base for the basic_resolver_query class templates to provide a common place to define the flag constants.
+
+The [link boost_asio.reference.ip__resolver_query_base `ip::resolver_query_base`] class is used as a base for the [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class templates to provide a common place to define the flag constants.
+
 
   class resolver_query_base
 
@@ -40552,7 +44217,9 @@
 
 [section:address_configured ip::resolver_query_base::address_configured]
 
-[indexterm2 address_configured..ip::resolver_query_base] Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
+[indexterm2 address_configured..ip::resolver_query_base]
+Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
+
 
   static const int address_configured = implementation_defined;
 
@@ -40564,7 +44231,9 @@
 
 [section:all_matching ip::resolver_query_base::all_matching]
 
-[indexterm2 all_matching..ip::resolver_query_base] If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
+[indexterm2 all_matching..ip::resolver_query_base]
+If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
+
 
   static const int all_matching = implementation_defined;
 
@@ -40576,7 +44245,9 @@
 
 [section:canonical_name ip::resolver_query_base::canonical_name]
 
-[indexterm2 canonical_name..ip::resolver_query_base] Determine the canonical name of the host specified in the query.
+[indexterm2 canonical_name..ip::resolver_query_base]
+Determine the canonical name of the host specified in the query.
+
 
   static const int canonical_name = implementation_defined;
 
@@ -40588,7 +44259,9 @@
 
 [section:numeric_host ip::resolver_query_base::numeric_host]
 
-[indexterm2 numeric_host..ip::resolver_query_base] Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
+[indexterm2 numeric_host..ip::resolver_query_base]
+Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
+
 
   static const int numeric_host = implementation_defined;
 
@@ -40600,7 +44273,9 @@
 
 [section:numeric_service ip::resolver_query_base::numeric_service]
 
-[indexterm2 numeric_service..ip::resolver_query_base] Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+[indexterm2 numeric_service..ip::resolver_query_base]
+Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+
 
   static const int numeric_service = implementation_defined;
 
@@ -40612,7 +44287,9 @@
 
 [section:passive ip::resolver_query_base::passive]
 
-[indexterm2 passive..ip::resolver_query_base] Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+[indexterm2 passive..ip::resolver_query_base]
+Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+
 
   static const int passive = implementation_defined;
 
@@ -40624,7 +44301,9 @@
 
 [section:v4_mapped ip::resolver_query_base::v4_mapped]
 
-[indexterm2 v4_mapped..ip::resolver_query_base] If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+[indexterm2 v4_mapped..ip::resolver_query_base]
+If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+
 
   static const int v4_mapped = implementation_defined;
 
@@ -40636,7 +44315,9 @@
 
 [section:_resolver_query_base ip::resolver_query_base::~resolver_query_base]
 
-[indexterm2 ~resolver_query_base..ip::resolver_query_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~resolver_query_base..ip::resolver_query_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~resolver_query_base();
 
@@ -40650,8 +44331,10 @@
 
 [section:ip__resolver_service ip::resolver_service]
 
+
 Default service implementation for a resolver.
 
+
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
   class resolver_service :
@@ -40773,7 +44456,9 @@
 
 [section:async_resolve ip::resolver_service::async_resolve]
 
-[indexterm2 async_resolve..ip::resolver_service] Asynchronously resolve a query to a list of entries.
+[indexterm2 async_resolve..ip::resolver_service]
+Asynchronously resolve a query to a list of entries.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -40783,8 +44468,10 @@
       Handler handler);
   `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.async_resolve.overload1 more...]]``
 
+
 Asynchronously resolve an endpoint to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
   void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload2 async_resolve]``(
@@ -40796,8 +44483,10 @@
 
 [section:overload1 ip::resolver_service::async_resolve (1 of 2 overloads)]
 
+
 Asynchronously resolve a query to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
   void async_resolve(
@@ -40813,8 +44502,10 @@
 
 [section:overload2 ip::resolver_service::async_resolve (2 of 2 overloads)]
 
+
 Asynchronously resolve an endpoint to a list of entries.
 
+
   template<
       typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
   void async_resolve(
@@ -40832,7 +44523,9 @@
 
 [section:cancel ip::resolver_service::cancel]
 
-[indexterm2 cancel..ip::resolver_service] Cancel pending asynchronous operations.
+[indexterm2 cancel..ip::resolver_service]
+Cancel pending asynchronous operations.
+
 
   void cancel(
       implementation_type & impl);
@@ -40845,7 +44538,9 @@
 
 [section:construct ip::resolver_service::construct]
 
-[indexterm2 construct..ip::resolver_service] Construct a new resolver implementation.
+[indexterm2 construct..ip::resolver_service]
+Construct a new resolver implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -40858,7 +44553,9 @@
 
 [section:destroy ip::resolver_service::destroy]
 
-[indexterm2 destroy..ip::resolver_service] Destroy a resolver implementation.
+[indexterm2 destroy..ip::resolver_service]
+Destroy a resolver implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -40871,7 +44568,9 @@
 
 [section:endpoint_type ip::resolver_service::endpoint_type]
 
-[indexterm2 endpoint_type..ip::resolver_service] The endpoint type.
+[indexterm2 endpoint_type..ip::resolver_service]
+The endpoint type.
+
 
   typedef InternetProtocol::endpoint endpoint_type;
 
@@ -40893,7 +44592,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..ip::resolver_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..ip::resolver_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -40905,7 +44606,9 @@
 
 [section:id ip::resolver_service::id]
 
-[indexterm2 id..ip::resolver_service] The unique service identifier.
+[indexterm2 id..ip::resolver_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -40917,7 +44620,9 @@
 
 [section:implementation_type ip::resolver_service::implementation_type]
 
-[indexterm2 implementation_type..ip::resolver_service] The type of a resolver implementation.
+[indexterm2 implementation_type..ip::resolver_service]
+The type of a resolver implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -40939,7 +44644,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..ip::resolver_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..ip::resolver_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -40951,7 +44658,9 @@
 
 [section:iterator_type ip::resolver_service::iterator_type]
 
-[indexterm2 iterator_type..ip::resolver_service] The iterator type.
+[indexterm2 iterator_type..ip::resolver_service]
+The iterator type.
+
 
   typedef InternetProtocol::resolver_iterator iterator_type;
 
@@ -40970,7 +44679,9 @@
 
 [section:protocol_type ip::resolver_service::protocol_type]
 
-[indexterm2 protocol_type..ip::resolver_service] The protocol type.
+[indexterm2 protocol_type..ip::resolver_service]
+The protocol type.
+
 
   typedef InternetProtocol protocol_type;
 
@@ -40989,7 +44700,9 @@
 
 [section:query_type ip::resolver_service::query_type]
 
-[indexterm2 query_type..ip::resolver_service] The query type.
+[indexterm2 query_type..ip::resolver_service]
+The query type.
+
 
   typedef InternetProtocol::resolver_query query_type;
 
@@ -41007,7 +44720,9 @@
 
 [section:resolve ip::resolver_service::resolve]
 
-[indexterm2 resolve..ip::resolver_service] Resolve a query to a list of entries.
+[indexterm2 resolve..ip::resolver_service]
+Resolve a query to a list of entries.
+
 
   iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload1 resolve]``(
       implementation_type & impl,
@@ -41015,8 +44730,10 @@
       boost::system::error_code & ec);
   `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.resolve.overload1 more...]]``
 
+
 Resolve an endpoint to a list of entries.
 
+
   iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload2 resolve]``(
       implementation_type & impl,
       const endpoint_type & endpoint,
@@ -41026,8 +44743,10 @@
 
 [section:overload1 ip::resolver_service::resolve (1 of 2 overloads)]
 
+
 Resolve a query to a list of entries.
 
+
   iterator_type resolve(
       implementation_type & impl,
       const query_type & query,
@@ -41041,8 +44760,10 @@
 
 [section:overload2 ip::resolver_service::resolve (2 of 2 overloads)]
 
+
 Resolve an endpoint to a list of entries.
 
+
   iterator_type resolve(
       implementation_type & impl,
       const endpoint_type & endpoint,
@@ -41058,7 +44779,9 @@
 
 [section:resolver_service ip::resolver_service::resolver_service]
 
-[indexterm2 resolver_service..ip::resolver_service] Construct a new resolver service for the specified io_service.
+[indexterm2 resolver_service..ip::resolver_service]
+Construct a new resolver service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   resolver_service(
       boost::asio::io_service & io_service);
@@ -41071,7 +44794,9 @@
 
 [section:shutdown_service ip::resolver_service::shutdown_service]
 
-[indexterm2 shutdown_service..ip::resolver_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..ip::resolver_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -41085,8 +44810,10 @@
 
 [section:ip__tcp ip::tcp]
 
+
 Encapsulates the flags needed for TCP.
 
+
   class tcp
 
 
@@ -41199,15 +44926,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__tcp ip::tcp] class contains flags necessary for TCP sockets.
+The [link boost_asio.reference.ip__tcp `ip::tcp`] class contains flags necessary for TCP sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -41219,7 +44947,9 @@
 
 [section:acceptor ip::tcp::acceptor]
 
-[indexterm2 acceptor..ip::tcp] The TCP acceptor type.
+[indexterm2 acceptor..ip::tcp]
+The TCP acceptor type.
+
 
   typedef basic_socket_acceptor< tcp > acceptor;
 
@@ -41506,14 +45236,15 @@
 
 ]
 
-The basic_socket_acceptor class template is used for accepting new socket connections.
+The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Example]
   
@@ -41531,6 +45262,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/tcp.hpp]
@@ -41544,7 +45276,9 @@
 
 [section:endpoint ip::tcp::endpoint]
 
-[indexterm2 endpoint..ip::tcp] The type of a TCP endpoint.
+[indexterm2 endpoint..ip::tcp]
+The type of a TCP endpoint.
+
 
   typedef basic_endpoint< tcp > endpoint;
 
@@ -41662,15 +45396,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_endpoint ip::basic_endpoint] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -41687,7 +45422,9 @@
 
 [section:family ip::tcp::family]
 
-[indexterm2 family..ip::tcp] Obtain an identifier for the protocol family.
+[indexterm2 family..ip::tcp]
+Obtain an identifier for the protocol family.
+
 
   int family() const;
 
@@ -41699,7 +45436,9 @@
 
 [section:iostream ip::tcp::iostream]
 
-[indexterm2 iostream..ip::tcp] The TCP iostream type.
+[indexterm2 iostream..ip::tcp]
+The TCP iostream type.
+
 
   typedef basic_socket_iostream< tcp > iostream;
 
@@ -41746,7 +45485,9 @@
 
 [section:no_delay ip::tcp::no_delay]
 
-[indexterm2 no_delay..ip::tcp] Socket option for disabling the Nagle algorithm.
+[indexterm2 no_delay..ip::tcp]
+Socket option for disabling the Nagle algorithm.
+
 
   typedef implementation_defined no_delay;
 
@@ -41767,6 +45508,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -41779,6 +45521,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/tcp.hpp]
@@ -41792,7 +45536,9 @@
 
 [section:operator_not__eq_ ip::tcp::operator!=]
 
-[indexterm2 operator!=..ip::tcp] Compare two protocols for inequality.
+[indexterm2 operator!=..ip::tcp]
+Compare two protocols for inequality.
+
 
   friend bool operator!=(
       const tcp & p1,
@@ -41812,7 +45558,9 @@
 
 [section:operator_eq__eq_ ip::tcp::operator==]
 
-[indexterm2 operator==..ip::tcp] Compare two protocols for equality.
+[indexterm2 operator==..ip::tcp]
+Compare two protocols for equality.
+
 
   friend bool operator==(
       const tcp & p1,
@@ -41832,7 +45580,9 @@
 
 [section:protocol ip::tcp::protocol]
 
-[indexterm2 protocol..ip::tcp] Obtain an identifier for the protocol.
+[indexterm2 protocol..ip::tcp]
+Obtain an identifier for the protocol.
+
 
   int protocol() const;
 
@@ -41844,7 +45594,9 @@
 
 [section:resolver ip::tcp::resolver]
 
-[indexterm2 resolver..ip::tcp] The TCP resolver type.
+[indexterm2 resolver..ip::tcp]
+The TCP resolver type.
+
 
   typedef basic_resolver< tcp > resolver;
 
@@ -41953,14 +45705,15 @@
 
 ]
 
-The basic_resolver class template provides the ability to resolve a query to a list of endpoints.
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -41977,7 +45730,9 @@
 
 [section:resolver_iterator ip::tcp::resolver_iterator]
 
-[indexterm2 resolver_iterator..ip::tcp] The type of a resolver iterator.
+[indexterm2 resolver_iterator..ip::tcp]
+The type of a resolver iterator.
+
 
   typedef basic_resolver_iterator< tcp > resolver_iterator;
 
@@ -42000,8 +45755,7 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_iterator ip::basic_resolver_iterator] class template is used to define iterators over the results returned by a resolver.
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
 The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
@@ -42013,9 +45767,10 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -42032,7 +45787,9 @@
 
 [section:resolver_query ip::tcp::resolver_query]
 
-[indexterm2 resolver_query..ip::tcp] The type of a resolver query.
+[indexterm2 resolver_query..ip::tcp]
+The type of a resolver query.
+
 
   typedef basic_resolver_query< tcp > resolver_query;
 
@@ -42123,15 +45880,15 @@
 
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_query ip::basic_resolver_query] class template describes a query that can be passed to a resolver.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -42148,7 +45905,9 @@
 
 [section:socket ip::tcp::socket]
 
-[indexterm2 socket..ip::tcp] The TCP socket type.
+[indexterm2 socket..ip::tcp]
+The TCP socket type.
+
 
   typedef basic_stream_socket< tcp > socket;
 
@@ -42509,14 +46268,16 @@
 
 ]
 
-The basic_stream_socket class template provides asynchronous and blocking stream-oriented socket functionality.
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -42533,7 +46294,9 @@
 
 [section:type ip::tcp::type]
 
-[indexterm2 type..ip::tcp] Obtain an identifier for the type of the protocol.
+[indexterm2 type..ip::tcp]
+Obtain an identifier for the type of the protocol.
+
 
   int type() const;
 
@@ -42545,7 +46308,9 @@
 
 [section:v4 ip::tcp::v4]
 
-[indexterm2 v4..ip::tcp] Construct to represent the IPv4 TCP protocol.
+[indexterm2 v4..ip::tcp]
+Construct to represent the IPv4 TCP protocol.
+
 
   static tcp v4();
 
@@ -42557,7 +46322,9 @@
 
 [section:v6 ip::tcp::v6]
 
-[indexterm2 v6..ip::tcp] Construct to represent the IPv6 TCP protocol.
+[indexterm2 v6..ip::tcp]
+Construct to represent the IPv6 TCP protocol.
+
 
   static tcp v6();
 
@@ -42571,8 +46338,10 @@
 
 [section:ip__udp ip::udp]
 
+
 Encapsulates the flags needed for UDP.
 
+
   class udp
 
 
@@ -42664,15 +46433,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__udp ip::udp] class contains flags necessary for UDP sockets.
+The [link boost_asio.reference.ip__udp `ip::udp`] class contains flags necessary for UDP sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -42684,7 +46454,9 @@
 
 [section:endpoint ip::udp::endpoint]
 
-[indexterm2 endpoint..ip::udp] The type of a UDP endpoint.
+[indexterm2 endpoint..ip::udp]
+The type of a UDP endpoint.
+
 
   typedef basic_endpoint< udp > endpoint;
 
@@ -42802,15 +46574,16 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_endpoint ip::basic_endpoint] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -42827,7 +46600,9 @@
 
 [section:family ip::udp::family]
 
-[indexterm2 family..ip::udp] Obtain an identifier for the protocol family.
+[indexterm2 family..ip::udp]
+Obtain an identifier for the protocol family.
+
 
   int family() const;
 
@@ -42839,7 +46614,9 @@
 
 [section:operator_not__eq_ ip::udp::operator!=]
 
-[indexterm2 operator!=..ip::udp] Compare two protocols for inequality.
+[indexterm2 operator!=..ip::udp]
+Compare two protocols for inequality.
+
 
   friend bool operator!=(
       const udp & p1,
@@ -42859,7 +46636,9 @@
 
 [section:operator_eq__eq_ ip::udp::operator==]
 
-[indexterm2 operator==..ip::udp] Compare two protocols for equality.
+[indexterm2 operator==..ip::udp]
+Compare two protocols for equality.
+
 
   friend bool operator==(
       const udp & p1,
@@ -42879,7 +46658,9 @@
 
 [section:protocol ip::udp::protocol]
 
-[indexterm2 protocol..ip::udp] Obtain an identifier for the protocol.
+[indexterm2 protocol..ip::udp]
+Obtain an identifier for the protocol.
+
 
   int protocol() const;
 
@@ -42891,7 +46672,9 @@
 
 [section:resolver ip::udp::resolver]
 
-[indexterm2 resolver..ip::udp] The UDP resolver type.
+[indexterm2 resolver..ip::udp]
+The UDP resolver type.
+
 
   typedef basic_resolver< udp > resolver;
 
@@ -43000,14 +46783,15 @@
 
 ]
 
-The basic_resolver class template provides the ability to resolve a query to a list of endpoints.
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -43024,7 +46808,9 @@
 
 [section:resolver_iterator ip::udp::resolver_iterator]
 
-[indexterm2 resolver_iterator..ip::udp] The type of a resolver iterator.
+[indexterm2 resolver_iterator..ip::udp]
+The type of a resolver iterator.
+
 
   typedef basic_resolver_iterator< udp > resolver_iterator;
 
@@ -43047,8 +46833,7 @@
   
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_iterator ip::basic_resolver_iterator] class template is used to define iterators over the results returned by a resolver.
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
 The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
@@ -43060,9 +46845,10 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -43079,7 +46865,9 @@
 
 [section:resolver_query ip::udp::resolver_query]
 
-[indexterm2 resolver_query..ip::udp] The type of a resolver query.
+[indexterm2 resolver_query..ip::udp]
+The type of a resolver query.
+
 
   typedef basic_resolver_query< udp > resolver_query;
 
@@ -43170,15 +46958,15 @@
 
 ]
 
-The
-[link boost_asio.reference.ip__basic_resolver_query ip::basic_resolver_query] class template describes a query that can be passed to a resolver.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -43195,7 +46983,9 @@
 
 [section:socket ip::udp::socket]
 
-[indexterm2 socket..ip::udp] The UDP socket type.
+[indexterm2 socket..ip::udp]
+The UDP socket type.
+
 
   typedef basic_datagram_socket< udp > socket;
 
@@ -43554,14 +47344,15 @@
 
 ]
 
-The basic_datagram_socket class template provides asynchronous and blocking datagram-oriented socket functionality.
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -43578,7 +47369,9 @@
 
 [section:type ip::udp::type]
 
-[indexterm2 type..ip::udp] Obtain an identifier for the type of the protocol.
+[indexterm2 type..ip::udp]
+Obtain an identifier for the type of the protocol.
+
 
   int type() const;
 
@@ -43590,7 +47383,9 @@
 
 [section:v4 ip::udp::v4]
 
-[indexterm2 v4..ip::udp] Construct to represent the IPv4 UDP protocol.
+[indexterm2 v4..ip::udp]
+Construct to represent the IPv4 UDP protocol.
+
 
   static udp v4();
 
@@ -43602,7 +47397,9 @@
 
 [section:v6 ip::udp::v6]
 
-[indexterm2 v6..ip::udp] Construct to represent the IPv6 UDP protocol.
+[indexterm2 v6..ip::udp]
+Construct to represent the IPv6 UDP protocol.
+
 
   static udp v6();
 
@@ -43617,7 +47414,9 @@
 
 [section:ip__unicast__hops ip::unicast::hops]
 
-[indexterm1 ip::unicast::hops] Socket option for time-to-live associated with outgoing unicast packets.
+[indexterm1 ip::unicast::hops]
+Socket option for time-to-live associated with outgoing unicast packets.
+
 
   typedef implementation_defined hops;
 
@@ -43638,6 +47437,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -43650,6 +47450,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/unicast.hpp]
@@ -43663,7 +47465,9 @@
 
 [section:ip__v6_only ip::v6_only]
 
-[indexterm1 ip::v6_only] Socket option for determining whether an IPv6 socket supports IPv6 communication only.
+[indexterm1 ip::v6_only]
+Socket option for determining whether an IPv6 socket supports IPv6 communication only.
+
 
   typedef implementation_defined v6_only;
 
@@ -43684,6 +47488,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -43696,6 +47501,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ip/v6_only.hpp]
@@ -43708,7 +47515,9 @@
 
 [section:is_match_condition is_match_condition]
 
-Type trait used to determine whether a type can be used as a match condition function with read_until and async_read_until.
+
+Type trait used to determine whether a type can be used as a match condition function with read\_until and async\_read\_until.
+
 
   template<
       typename T>
@@ -43735,7 +47544,9 @@
 
 [section:value is_match_condition::value]
 
-[indexterm2 value..is_match_condition] The value member is true if the type may be used as a match condition.
+[indexterm2 value..is_match_condition]
+The value member is true if the type may be used as a match condition.
+
 
   static const bool value;
 
@@ -43749,7 +47560,9 @@
 
 [section:is_read_buffered is_read_buffered]
 
-The is_read_buffered class is a traits class that may be used to determine whether a stream type supports buffering of read data.
+
+The [link boost_asio.reference.is_read_buffered `is_read_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of read data.
+
 
   template<
       typename Stream>
@@ -43776,7 +47589,9 @@
 
 [section:value is_read_buffered::value]
 
-[indexterm2 value..is_read_buffered] The value member is true only if the Stream type supports buffering of read data.
+[indexterm2 value..is_read_buffered]
+The value member is true only if the Stream type supports buffering of read data.
+
 
   static const bool value;
 
@@ -43790,7 +47605,9 @@
 
 [section:is_write_buffered is_write_buffered]
 
-The is_write_buffered class is a traits class that may be used to determine whether a stream type supports buffering of written data.
+
+The [link boost_asio.reference.is_write_buffered `is_write_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of written data.
+
 
   template<
       typename Stream>
@@ -43817,7 +47634,9 @@
 
 [section:value is_write_buffered::value]
 
-[indexterm2 value..is_write_buffered] The value member is true only if the Stream type supports buffering of written data.
+[indexterm2 value..is_write_buffered]
+The value member is true only if the Stream type supports buffering of written data.
+
 
   static const bool value;
 
@@ -43831,8 +47650,10 @@
 
 [section:local__basic_endpoint local::basic_endpoint]
 
+
 Describes an endpoint for a UNIX socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``>
   class basic_endpoint
@@ -43942,15 +47763,16 @@
   
 ]
 
-The
-[link boost_asio.reference.local__basic_endpoint local::basic_endpoint] class template describes an endpoint that may be associated with a particular UNIX socket.
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -43961,13 +47783,17 @@
 
 [section:basic_endpoint local::basic_endpoint::basic_endpoint]
 
-[indexterm2 basic_endpoint..local::basic_endpoint] Default constructor.
+[indexterm2 basic_endpoint..local::basic_endpoint]
+Default constructor.
+
 
   ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 more...]]``
 
+
 Construct an endpoint using the specified path name.
 
+
   ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
       const char * path);
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 more...]]``
@@ -43976,8 +47802,10 @@
       const std::string & path);
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload3 more...]]``
 
+
 Copy constructor.
 
+
   ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
       const basic_endpoint & other);
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 more...]]``
@@ -43985,8 +47813,10 @@
 
 [section:overload1 local::basic_endpoint::basic_endpoint (1 of 4 overloads)]
 
+
 Default constructor.
 
+
   basic_endpoint();
 
 
@@ -43997,8 +47827,10 @@
 
 [section:overload2 local::basic_endpoint::basic_endpoint (2 of 4 overloads)]
 
+
 Construct an endpoint using the specified path name.
 
+
   basic_endpoint(
       const char * path);
 
@@ -44010,8 +47842,10 @@
 
 [section:overload3 local::basic_endpoint::basic_endpoint (3 of 4 overloads)]
 
+
 Construct an endpoint using the specified path name.
 
+
   basic_endpoint(
       const std::string & path);
 
@@ -44023,8 +47857,10 @@
 
 [section:overload4 local::basic_endpoint::basic_endpoint (4 of 4 overloads)]
 
+
 Copy constructor.
 
+
   basic_endpoint(
       const basic_endpoint & other);
 
@@ -44038,7 +47874,9 @@
 
 [section:capacity local::basic_endpoint::capacity]
 
-[indexterm2 capacity..local::basic_endpoint] Get the capacity of the endpoint in the native type.
+[indexterm2 capacity..local::basic_endpoint]
+Get the capacity of the endpoint in the native type.
+
 
   std::size_t capacity() const;
 
@@ -44049,7 +47887,9 @@
 
 [section:data local::basic_endpoint::data]
 
-[indexterm2 data..local::basic_endpoint] Get the underlying endpoint in the native type.
+[indexterm2 data..local::basic_endpoint]
+Get the underlying endpoint in the native type.
+
 
   data_type * ``[link boost_asio.reference.local__basic_endpoint.data.overload1 data]``();
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.data.overload1 more...]]``
@@ -44060,8 +47900,10 @@
 
 [section:overload1 local::basic_endpoint::data (1 of 2 overloads)]
 
+
 Get the underlying endpoint in the native type.
 
+
   data_type * data();
 
 
@@ -44072,8 +47914,10 @@
 
 [section:overload2 local::basic_endpoint::data (2 of 2 overloads)]
 
+
 Get the underlying endpoint in the native type.
 
+
   const data_type * data() const;
 
 
@@ -44086,7 +47930,9 @@
 
 [section:data_type local::basic_endpoint::data_type]
 
-[indexterm2 data_type..local::basic_endpoint] The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+[indexterm2 data_type..local::basic_endpoint]
+The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+
 
   typedef implementation_defined data_type;
 
@@ -44105,7 +47951,9 @@
 
 [section:operator_not__eq_ local::basic_endpoint::operator!=]
 
-[indexterm2 operator!=..local::basic_endpoint] Compare two endpoints for inequality.
+[indexterm2 operator!=..local::basic_endpoint]
+Compare two endpoints for inequality.
+
 
   friend bool operator!=(
       const basic_endpoint< Protocol > & e1,
@@ -44125,7 +47973,9 @@
 
 [section:operator_lt_ local::basic_endpoint::operator<]
 
-[indexterm2 operator<..local::basic_endpoint] Compare endpoints for ordering.
+[indexterm2 operator<..local::basic_endpoint]
+Compare endpoints for ordering.
+
 
   friend bool operator<(
       const basic_endpoint< Protocol > & e1,
@@ -44145,7 +47995,9 @@
 
 [section:operator_lt__lt_ local::basic_endpoint::operator<<]
 
-[indexterm2 operator<<..local::basic_endpoint] Output an endpoint as a string.
+[indexterm2 operator<<..local::basic_endpoint]
+Output an endpoint as a string.
+
 
   std::basic_ostream< Elem, Traits > & operator<<(
       std::basic_ostream< Elem, Traits > & os,
@@ -44166,19 +48018,23 @@
 
 ]
 
+
 [heading Return Value]
       
 The output stream.
 
 
 
+
 [endsect]
 
 
 
 [section:operator_eq_ local::basic_endpoint::operator=]
 
-[indexterm2 operator=..local::basic_endpoint] Assign from another endpoint.
+[indexterm2 operator=..local::basic_endpoint]
+Assign from another endpoint.
+
 
   basic_endpoint & operator=(
       const basic_endpoint & other);
@@ -44191,7 +48047,9 @@
 
 [section:operator_eq__eq_ local::basic_endpoint::operator==]
 
-[indexterm2 operator==..local::basic_endpoint] Compare two endpoints for equality.
+[indexterm2 operator==..local::basic_endpoint]
+Compare two endpoints for equality.
+
 
   friend bool operator==(
       const basic_endpoint< Protocol > & e1,
@@ -44210,13 +48068,17 @@
 
 [section:path local::basic_endpoint::path]
 
-[indexterm2 path..local::basic_endpoint] Get the path associated with the endpoint.
+[indexterm2 path..local::basic_endpoint]
+Get the path associated with the endpoint.
+
 
   std::string ``[link boost_asio.reference.local__basic_endpoint.path.overload1 path]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload1 more...]]``
 
+
 Set the path associated with the endpoint.
 
+
   void ``[link boost_asio.reference.local__basic_endpoint.path.overload2 path]``(
       const char * p);
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload2 more...]]``
@@ -44228,8 +48090,10 @@
 
 [section:overload1 local::basic_endpoint::path (1 of 3 overloads)]
 
+
 Get the path associated with the endpoint.
 
+
   std::string path() const;
 
 
@@ -44240,8 +48104,10 @@
 
 [section:overload2 local::basic_endpoint::path (2 of 3 overloads)]
 
+
 Set the path associated with the endpoint.
 
+
   void path(
       const char * p);
 
@@ -44253,8 +48119,10 @@
 
 [section:overload3 local::basic_endpoint::path (3 of 3 overloads)]
 
+
 Set the path associated with the endpoint.
 
+
   void path(
       const std::string & p);
 
@@ -44268,7 +48136,9 @@
 
 [section:protocol local::basic_endpoint::protocol]
 
-[indexterm2 protocol..local::basic_endpoint] The protocol associated with the endpoint.
+[indexterm2 protocol..local::basic_endpoint]
+The protocol associated with the endpoint.
+
 
   protocol_type protocol() const;
 
@@ -44280,7 +48150,9 @@
 
 [section:protocol_type local::basic_endpoint::protocol_type]
 
-[indexterm2 protocol_type..local::basic_endpoint] The protocol type associated with the endpoint.
+[indexterm2 protocol_type..local::basic_endpoint]
+The protocol type associated with the endpoint.
+
 
   typedef Protocol protocol_type;
 
@@ -44299,7 +48171,9 @@
 
 [section:resize local::basic_endpoint::resize]
 
-[indexterm2 resize..local::basic_endpoint] Set the underlying size of the endpoint in the native type.
+[indexterm2 resize..local::basic_endpoint]
+Set the underlying size of the endpoint in the native type.
+
 
   void resize(
       std::size_t size);
@@ -44312,7 +48186,9 @@
 
 [section:size local::basic_endpoint::size]
 
-[indexterm2 size..local::basic_endpoint] Get the underlying size of the endpoint in the native type.
+[indexterm2 size..local::basic_endpoint]
+Get the underlying size of the endpoint in the native type.
+
 
   std::size_t size() const;
 
@@ -44326,7 +48202,9 @@
 
 [section:local__connect_pair local::connect_pair]
 
-[indexterm1 local::connect_pair] Create a pair of connected sockets.
+[indexterm1 local::connect_pair]
+Create a pair of connected sockets.
+
     
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
@@ -44356,8 +48234,10 @@
 
 [section:overload1 local::connect_pair (1 of 2 overloads)]
 
+
 Create a pair of connected sockets.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.SocketService SocketService1]``,
@@ -44374,8 +48254,10 @@
 
 [section:overload2 local::connect_pair (2 of 2 overloads)]
 
+
 Create a pair of connected sockets.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``,
       typename ``[link boost_asio.reference.SocketService SocketService1]``,
@@ -44394,8 +48276,10 @@
 
 [section:local__datagram_protocol local::datagram_protocol]
 
+
 Encapsulates the flags needed for datagram-oriented UNIX sockets.
 
+
   class datagram_protocol
 
 
@@ -44440,15 +48324,16 @@
   
 ]
 
-The
-[link boost_asio.reference.local__datagram_protocol local::datagram_protocol] class contains flags necessary for datagram-oriented UNIX domain sockets.
+The [link boost_asio.reference.local__datagram_protocol `local::datagram_protocol`] class contains flags necessary for datagram-oriented UNIX domain sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -44460,7 +48345,9 @@
 
 [section:endpoint local::datagram_protocol::endpoint]
 
-[indexterm2 endpoint..local::datagram_protocol] The type of a UNIX domain endpoint.
+[indexterm2 endpoint..local::datagram_protocol]
+The type of a UNIX domain endpoint.
+
 
   typedef basic_endpoint< datagram_protocol > endpoint;
 
@@ -44569,15 +48456,16 @@
   
 ]
 
-The
-[link boost_asio.reference.local__basic_endpoint local::basic_endpoint] class template describes an endpoint that may be associated with a particular UNIX socket.
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -44594,7 +48482,9 @@
 
 [section:family local::datagram_protocol::family]
 
-[indexterm2 family..local::datagram_protocol] Obtain an identifier for the protocol family.
+[indexterm2 family..local::datagram_protocol]
+Obtain an identifier for the protocol family.
+
 
   int family() const;
 
@@ -44606,7 +48496,9 @@
 
 [section:protocol local::datagram_protocol::protocol]
 
-[indexterm2 protocol..local::datagram_protocol] Obtain an identifier for the protocol.
+[indexterm2 protocol..local::datagram_protocol]
+Obtain an identifier for the protocol.
+
 
   int protocol() const;
 
@@ -44618,7 +48510,9 @@
 
 [section:socket local::datagram_protocol::socket]
 
-[indexterm2 socket..local::datagram_protocol] The UNIX domain socket type.
+[indexterm2 socket..local::datagram_protocol]
+The UNIX domain socket type.
+
 
   typedef basic_datagram_socket< datagram_protocol > socket;
 
@@ -44977,14 +48871,15 @@
 
 ]
 
-The basic_datagram_socket class template provides asynchronous and blocking datagram-oriented socket functionality.
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -45001,7 +48896,9 @@
 
 [section:type local::datagram_protocol::type]
 
-[indexterm2 type..local::datagram_protocol] Obtain an identifier for the type of the protocol.
+[indexterm2 type..local::datagram_protocol]
+Obtain an identifier for the type of the protocol.
+
 
   int type() const;
 
@@ -45015,8 +48912,10 @@
 
 [section:local__stream_protocol local::stream_protocol]
 
+
 Encapsulates the flags needed for stream-oriented UNIX sockets.
 
+
   class stream_protocol
 
 
@@ -45075,15 +48974,16 @@
   
 ]
 
-The
-[link boost_asio.reference.local__stream_protocol local::stream_protocol] class contains flags necessary for stream-oriented UNIX domain sockets.
+The [link boost_asio.reference.local__stream_protocol `local::stream_protocol`] class contains flags necessary for stream-oriented UNIX domain sockets.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 [heading Requirements]
@@ -45095,7 +48995,9 @@
 
 [section:acceptor local::stream_protocol::acceptor]
 
-[indexterm2 acceptor..local::stream_protocol] The UNIX domain acceptor type.
+[indexterm2 acceptor..local::stream_protocol]
+The UNIX domain acceptor type.
+
 
   typedef basic_socket_acceptor< stream_protocol > acceptor;
 
@@ -45382,14 +49284,15 @@
 
 ]
 
-The basic_socket_acceptor class template is used for accepting new socket connections.
+The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Example]
   
@@ -45407,6 +49310,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/local/stream_protocol.hpp]
@@ -45420,7 +49324,9 @@
 
 [section:endpoint local::stream_protocol::endpoint]
 
-[indexterm2 endpoint..local::stream_protocol] The type of a UNIX domain endpoint.
+[indexterm2 endpoint..local::stream_protocol]
+The type of a UNIX domain endpoint.
+
 
   typedef basic_endpoint< stream_protocol > endpoint;
 
@@ -45529,15 +49435,16 @@
   
 ]
 
-The
-[link boost_asio.reference.local__basic_endpoint local::basic_endpoint] class template describes an endpoint that may be associated with a particular UNIX socket.
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -45554,7 +49461,9 @@
 
 [section:family local::stream_protocol::family]
 
-[indexterm2 family..local::stream_protocol] Obtain an identifier for the protocol family.
+[indexterm2 family..local::stream_protocol]
+Obtain an identifier for the protocol family.
+
 
   int family() const;
 
@@ -45566,7 +49475,9 @@
 
 [section:iostream local::stream_protocol::iostream]
 
-[indexterm2 iostream..local::stream_protocol] The UNIX domain iostream type.
+[indexterm2 iostream..local::stream_protocol]
+The UNIX domain iostream type.
+
 
   typedef basic_socket_iostream< stream_protocol > iostream;
 
@@ -45613,7 +49524,9 @@
 
 [section:protocol local::stream_protocol::protocol]
 
-[indexterm2 protocol..local::stream_protocol] Obtain an identifier for the protocol.
+[indexterm2 protocol..local::stream_protocol]
+Obtain an identifier for the protocol.
+
 
   int protocol() const;
 
@@ -45625,7 +49538,9 @@
 
 [section:socket local::stream_protocol::socket]
 
-[indexterm2 socket..local::stream_protocol] The UNIX domain socket type.
+[indexterm2 socket..local::stream_protocol]
+The UNIX domain socket type.
+
 
   typedef basic_stream_socket< stream_protocol > socket;
 
@@ -45986,14 +49901,16 @@
 
 ]
 
-The basic_stream_socket class template provides asynchronous and blocking stream-oriented socket functionality.
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -46010,7 +49927,9 @@
 
 [section:type local::stream_protocol::type]
 
-[indexterm2 type..local::stream_protocol] Obtain an identifier for the type of the protocol.
+[indexterm2 type..local::stream_protocol]
+Obtain an identifier for the type of the protocol.
+
 
   int type() const;
 
@@ -46024,8 +49943,10 @@
 
 [section:mutable_buffer mutable_buffer]
 
+
 Holds a buffer that can be modified.
 
+
   class mutable_buffer
 
 
@@ -46063,7 +49984,7 @@
   
 ]
 
-The mutable_buffer class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 [heading Requirements]
 
@@ -46074,7 +49995,9 @@
 
 [section:buffer_cast mutable_buffer::buffer_cast]
 
-[indexterm2 buffer_cast..mutable_buffer] Cast a non-modifiable buffer to a specified pointer to POD type.
+[indexterm2 buffer_cast..mutable_buffer]
+Cast a non-modifiable buffer to a specified pointer to POD type.
+
 
   template<
       typename PointerToPodType>
@@ -46089,7 +50012,9 @@
 
 [section:buffer_size mutable_buffer::buffer_size]
 
-[indexterm2 buffer_size..mutable_buffer] Get the number of bytes in a non-modifiable buffer.
+[indexterm2 buffer_size..mutable_buffer]
+Get the number of bytes in a non-modifiable buffer.
+
 
   std::size_t buffer_size(
       const mutable_buffer & b);
@@ -46101,13 +50026,17 @@
 
 [section:mutable_buffer mutable_buffer::mutable_buffer]
 
-[indexterm2 mutable_buffer..mutable_buffer] Construct an empty buffer.
+[indexterm2 mutable_buffer..mutable_buffer]
+Construct an empty buffer.
+
 
   ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 mutable_buffer]``();
   `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 more...]]``
 
+
 Construct a buffer to represent a given memory range.
 
+
   ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload2 mutable_buffer]``(
       void * data,
       std::size_t size);
@@ -46116,8 +50045,10 @@
 
 [section:overload1 mutable_buffer::mutable_buffer (1 of 2 overloads)]
 
+
 Construct an empty buffer.
 
+
   mutable_buffer();
 
 
@@ -46128,8 +50059,10 @@
 
 [section:overload2 mutable_buffer::mutable_buffer (2 of 2 overloads)]
 
+
 Construct a buffer to represent a given memory range.
 
+
   mutable_buffer(
       void * data,
       std::size_t size);
@@ -46143,7 +50076,9 @@
 
 [section:operator_plus_ mutable_buffer::operator+]
 
-[indexterm2 operator+..mutable_buffer] Create a new modifiable buffer that is offset from the start of another.
+[indexterm2 operator+..mutable_buffer]
+Create a new modifiable buffer that is offset from the start of another.
+
 
   mutable_buffer ``[link boost_asio.reference.mutable_buffer.operator_plus_.overload1 operator+]``(
       const mutable_buffer & b,
@@ -46158,8 +50093,10 @@
 
 [section:overload1 mutable_buffer::operator+ (1 of 2 overloads)]
 
+
 Create a new modifiable buffer that is offset from the start of another.
 
+
   mutable_buffer operator+(
       const mutable_buffer & b,
       std::size_t start);
@@ -46172,8 +50109,10 @@
 
 [section:overload2 mutable_buffer::operator+ (2 of 2 overloads)]
 
+
 Create a new modifiable buffer that is offset from the start of another.
 
+
   mutable_buffer operator+(
       std::size_t start,
       const mutable_buffer & b);
@@ -46190,8 +50129,10 @@
 
 [section:mutable_buffers_1 mutable_buffers_1]
 
+
 Adapts a single modifiable buffer so that it meets the requirements of the MutableBufferSequence concept.
 
+
   class mutable_buffers_1 :
     public mutable_buffer
 
@@ -46269,7 +50210,9 @@
 
 [section:begin mutable_buffers_1::begin]
 
-[indexterm2 begin..mutable_buffers_1] Get a random-access iterator to the first element.
+[indexterm2 begin..mutable_buffers_1]
+Get a random-access iterator to the first element.
+
 
   const_iterator begin() const;
 
@@ -46284,7 +50227,9 @@
 
 ['Inherited from mutable_buffer.]
 
-[indexterm2 buffer_cast..mutable_buffers_1] Cast a non-modifiable buffer to a specified pointer to POD type.
+[indexterm2 buffer_cast..mutable_buffers_1]
+Cast a non-modifiable buffer to a specified pointer to POD type.
+
 
   template<
       typename PointerToPodType>
@@ -46302,7 +50247,9 @@
 
 ['Inherited from mutable_buffer.]
 
-[indexterm2 buffer_size..mutable_buffers_1] Get the number of bytes in a non-modifiable buffer.
+[indexterm2 buffer_size..mutable_buffers_1]
+Get the number of bytes in a non-modifiable buffer.
+
 
   std::size_t buffer_size(
       const mutable_buffer & b);
@@ -46315,7 +50262,9 @@
 
 [section:const_iterator mutable_buffers_1::const_iterator]
 
-[indexterm2 const_iterator..mutable_buffers_1] A random-access iterator type that may be used to read elements.
+[indexterm2 const_iterator..mutable_buffers_1]
+A random-access iterator type that may be used to read elements.
+
 
   typedef const mutable_buffer * const_iterator;
 
@@ -46334,7 +50283,9 @@
 
 [section:end mutable_buffers_1::end]
 
-[indexterm2 end..mutable_buffers_1] Get a random-access iterator for one past the last element.
+[indexterm2 end..mutable_buffers_1]
+Get a random-access iterator for one past the last element.
+
 
   const_iterator end() const;
 
@@ -46345,24 +50296,30 @@
 
 [section:mutable_buffers_1 mutable_buffers_1::mutable_buffers_1]
 
-[indexterm2 mutable_buffers_1..mutable_buffers_1] Construct to represent a given memory range.
+[indexterm2 mutable_buffers_1..mutable_buffers_1]
+Construct to represent a given memory range.
+
 
   ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 mutable_buffers_1]``(
       void * data,
       std::size_t size);
   `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 more...]]``
 
+
 Construct to represent a single modifiable buffer.
 
- ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 mutable_buffers_1]``(
+
+ explicit ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 mutable_buffers_1]``(
       const mutable_buffer & b);
   `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 more...]]``
 
 
 [section:overload1 mutable_buffers_1::mutable_buffers_1 (1 of 2 overloads)]
 
+
 Construct to represent a given memory range.
 
+
   mutable_buffers_1(
       void * data,
       std::size_t size);
@@ -46375,8 +50332,10 @@
 
 [section:overload2 mutable_buffers_1::mutable_buffers_1 (2 of 2 overloads)]
 
+
 Construct to represent a single modifiable buffer.
 
+
   mutable_buffers_1(
       const mutable_buffer & b);
 
@@ -46389,7 +50348,9 @@
 
 [section:operator_plus_ mutable_buffers_1::operator+]
 
-[indexterm2 operator+..mutable_buffers_1] Create a new modifiable buffer that is offset from the start of another.
+[indexterm2 operator+..mutable_buffers_1]
+Create a new modifiable buffer that is offset from the start of another.
+
 
   mutable_buffer ``[link boost_asio.reference.mutable_buffers_1.operator_plus_.overload1 operator+]``(
       const mutable_buffer & b,
@@ -46407,8 +50368,10 @@
 
 ['Inherited from mutable_buffer.]
 
+
 Create a new modifiable buffer that is offset from the start of another.
 
+
   mutable_buffer operator+(
       const mutable_buffer & b,
       std::size_t start);
@@ -46424,8 +50387,10 @@
 
 ['Inherited from mutable_buffer.]
 
+
 Create a new modifiable buffer that is offset from the start of another.
 
+
   mutable_buffer operator+(
       std::size_t start,
       const mutable_buffer & b);
@@ -46440,7 +50405,9 @@
 
 [section:value_type mutable_buffers_1::value_type]
 
-[indexterm2 value_type..mutable_buffers_1] The type for each element in the list of buffers.
+[indexterm2 value_type..mutable_buffers_1]
+The type for each element in the list of buffers.
+
 
   typedef mutable_buffer value_type;
 
@@ -46479,7 +50446,7 @@
   
 ]
 
-The mutable_buffer class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
 [heading Requirements]
@@ -46497,8 +50464,10 @@
 
 [section:null_buffers null_buffers]
 
+
 An implementation of both the ConstBufferSequence and MutableBufferSequence concepts to represent a null buffer sequence.
 
+
   class null_buffers
 
 
@@ -46547,7 +50516,9 @@
 
 [section:begin null_buffers::begin]
 
-[indexterm2 begin..null_buffers] Get a random-access iterator to the first element.
+[indexterm2 begin..null_buffers]
+Get a random-access iterator to the first element.
+
 
   const_iterator begin() const;
 
@@ -46559,7 +50530,9 @@
 
 [section:const_iterator null_buffers::const_iterator]
 
-[indexterm2 const_iterator..null_buffers] A random-access iterator type that may be used to read elements.
+[indexterm2 const_iterator..null_buffers]
+A random-access iterator type that may be used to read elements.
+
 
   typedef const mutable_buffer * const_iterator;
 
@@ -46578,7 +50551,9 @@
 
 [section:end null_buffers::end]
 
-[indexterm2 end..null_buffers] Get a random-access iterator for one past the last element.
+[indexterm2 end..null_buffers]
+Get a random-access iterator for one past the last element.
+
 
   const_iterator end() const;
 
@@ -46590,7 +50565,9 @@
 
 [section:value_type null_buffers::value_type]
 
-[indexterm2 value_type..null_buffers] The type for each element in the list of buffers.
+[indexterm2 value_type..null_buffers]
+The type for each element in the list of buffers.
+
 
   typedef mutable_buffer value_type;
 
@@ -46629,7 +50606,7 @@
   
 ]
 
-The mutable_buffer class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
 [heading Requirements]
@@ -46648,7 +50625,9 @@
 
 [section:placeholders__bytes_transferred placeholders::bytes_transferred]
 
-[indexterm1 placeholders::bytes_transferred] An argument placeholder, for use with boost::bind(), that corresponds to the bytes_transferred argument of a handler for asynchronous functions such as boost::asio::basic_stream_socket::async_write_some or boost::asio::async_write.
+[indexterm1 placeholders::bytes_transferred]
+An argument placeholder, for use with boost::bind(), that corresponds to the bytes\_transferred argument of a handler for asynchronous functions such as `boost::asio::basic_stream_socket::async_write_some` or `boost::asio::async_write`.
+
 
   unspecified bytes_transferred;
 
@@ -46666,7 +50645,9 @@
 
 [section:placeholders__error placeholders::error]
 
-[indexterm1 placeholders::error] An argument placeholder, for use with boost::bind(), that corresponds to the error argument of a handler for any of the asynchronous functions.
+[indexterm1 placeholders::error]
+An argument placeholder, for use with boost::bind(), that corresponds to the error argument of a handler for any of the asynchronous functions.
+
 
   unspecified error;
 
@@ -46684,7 +50665,9 @@
 
 [section:placeholders__iterator placeholders::iterator]
 
-[indexterm1 placeholders::iterator] An argument placeholder, for use with boost::bind(), that corresponds to the iterator argument of a handler for asynchronous functions such as boost::asio::basic_resolver::resolve.
+[indexterm1 placeholders::iterator]
+An argument placeholder, for use with boost::bind(), that corresponds to the iterator argument of a handler for asynchronous functions such as boost::asio::basic\_resolver::resolve.
+
 
   unspecified iterator;
 
@@ -46701,8 +50684,10 @@
 
 [section:posix__basic_descriptor posix::basic_descriptor]
 
+
 Provides POSIX descriptor functionality.
 
+
   template<
       typename ``[link boost_asio.reference.DescriptorService DescriptorService]``>
   class basic_descriptor :
@@ -46845,14 +50830,15 @@
 
 ]
 
-The posix::basic_descriptor class template provides the ability to wrap a POSIX descriptor.
+The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -46863,7 +50849,9 @@
 
 [section:assign posix::basic_descriptor::assign]
 
-[indexterm2 assign..posix::basic_descriptor] Assign an existing native descriptor to the descriptor.
+[indexterm2 assign..posix::basic_descriptor]
+Assign an existing native descriptor to the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_descriptor.assign.overload1 assign]``(
       const native_type & native_descriptor);
@@ -46877,8 +50865,10 @@
 
 [section:overload1 posix::basic_descriptor::assign (1 of 2 overloads)]
 
+
 Assign an existing native descriptor to the descriptor.
 
+
   void assign(
       const native_type & native_descriptor);
 
@@ -46890,8 +50880,10 @@
 
 [section:overload2 posix::basic_descriptor::assign (2 of 2 overloads)]
 
+
 Assign an existing native descriptor to the descriptor.
 
+
   boost::system::error_code assign(
       const native_type & native_descriptor,
       boost::system::error_code & ec);
@@ -46905,13 +50897,17 @@
 
 [section:basic_descriptor posix::basic_descriptor::basic_descriptor]
 
-[indexterm2 basic_descriptor..posix::basic_descriptor] Construct a basic_descriptor without opening it.
+[indexterm2 basic_descriptor..posix::basic_descriptor]
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+
 
- ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 basic_descriptor]``(
+ explicit ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 basic_descriptor]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 more...]]``
 
-Construct a basic_descriptor on an existing native descriptor.
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+
 
   ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload2 basic_descriptor]``(
       boost::asio::io_service & io_service,
@@ -46921,7 +50917,9 @@
 
 [section:overload1 posix::basic_descriptor::basic_descriptor (1 of 2 overloads)]
 
-Construct a basic_descriptor without opening it.
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+
 
   basic_descriptor(
       boost::asio::io_service & io_service);
@@ -46935,19 +50933,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_descriptor::basic_descriptor (2 of 2 overloads)]
 
-Construct a basic_descriptor on an existing native descriptor.
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+
 
   basic_descriptor(
       boost::asio::io_service & io_service,
@@ -46962,12 +50963,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
 
 [[native_descriptor][A native descriptor.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -46979,6 +50981,7 @@
 
 
 
+
 [endsect]
 
 
@@ -46990,7 +50993,9 @@
 
 ['Inherited from posix::descriptor_base.]
 
-[indexterm2 bytes_readable..posix::basic_descriptor] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..posix::basic_descriptor]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -47013,6 +51018,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/basic_descriptor.hpp]
@@ -47025,7 +51032,9 @@
 
 [section:cancel posix::basic_descriptor::cancel]
 
-[indexterm2 cancel..posix::basic_descriptor] Cancel all asynchronous operations associated with the descriptor.
+[indexterm2 cancel..posix::basic_descriptor]
+Cancel all asynchronous operations associated with the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_descriptor.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.cancel.overload1 more...]]``
@@ -47037,12 +51046,14 @@
 
 [section:overload1 posix::basic_descriptor::cancel (1 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the descriptor.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -47056,19 +51067,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_descriptor::cancel (2 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the descriptor.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -47082,6 +51096,7 @@
 
 
 
+
 [endsect]
 
 
@@ -47089,7 +51104,9 @@
 
 [section:close posix::basic_descriptor::close]
 
-[indexterm2 close..posix::basic_descriptor] Close the descriptor.
+[indexterm2 close..posix::basic_descriptor]
+Close the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_descriptor.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.close.overload1 more...]]``
@@ -47101,12 +51118,14 @@
 
 [section:overload1 posix::basic_descriptor::close (1 of 2 overloads)]
 
+
 Close the descriptor.
 
+
   void close();
 
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -47120,19 +51139,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_descriptor::close (2 of 2 overloads)]
 
+
 Close the descriptor.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -47146,6 +51168,7 @@
 
 
 
+
 [endsect]
 
 
@@ -47157,17 +51180,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..posix::basic_descriptor] Get the io_service associated with the object.
+[indexterm2 get_io_service..posix::basic_descriptor]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -47180,7 +51206,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..posix::basic_descriptor] The underlying implementation of the I/O object.
+[indexterm2 implementation..posix::basic_descriptor]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -47195,7 +51223,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..posix::basic_descriptor] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..posix::basic_descriptor]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -47213,7 +51243,9 @@
 
 [section:io_control posix::basic_descriptor::io_control]
 
-[indexterm2 io_control..posix::basic_descriptor] Perform an IO control command on the descriptor.
+[indexterm2 io_control..posix::basic_descriptor]
+Perform an IO control command on the descriptor.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -47231,8 +51263,10 @@
 
 [section:overload1 posix::basic_descriptor::io_control (1 of 2 overloads)]
 
+
 Perform an IO control command on the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
   void io_control(
@@ -47251,6 +51285,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -47260,6 +51295,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -47275,14 +51312,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_descriptor::io_control (2 of 2 overloads)]
 
+
 Perform an IO control command on the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
   boost::system::error_code io_control(
@@ -47304,6 +51344,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -47324,6 +51366,7 @@
 
 
 
+
 [endsect]
 
 
@@ -47335,17 +51378,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..posix::basic_descriptor] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..posix::basic_descriptor]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -47355,7 +51401,9 @@
 
 [section:is_open posix::basic_descriptor::is_open]
 
-[indexterm2 is_open..posix::basic_descriptor] Determine whether the descriptor is open.
+[indexterm2 is_open..posix::basic_descriptor]
+Determine whether the descriptor is open.
+
 
   bool is_open() const;
 
@@ -47366,25 +51414,31 @@
 
 [section:lowest_layer posix::basic_descriptor::lowest_layer]
 
-[indexterm2 lowest_layer..posix::basic_descriptor] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..posix::basic_descriptor]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 posix::basic_descriptor::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_descriptor cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -47393,18 +51447,21 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_descriptor::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_descriptor cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -47413,6 +51470,7 @@
 
 
 
+
 [endsect]
 
 
@@ -47421,7 +51479,9 @@
 
 [section:lowest_layer_type posix::basic_descriptor::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..posix::basic_descriptor] A basic_descriptor is always the lowest layer.
+[indexterm2 lowest_layer_type..posix::basic_descriptor]
+A [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] is always the lowest layer.
+
 
   typedef basic_descriptor< DescriptorService > lowest_layer_type;
 
@@ -47561,14 +51621,15 @@
 
 ]
 
-The posix::basic_descriptor class template provides the ability to wrap a POSIX descriptor.
+The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -47585,7 +51646,9 @@
 
 [section:native posix::basic_descriptor::native]
 
-[indexterm2 native..posix::basic_descriptor] Get the native descriptor representation.
+[indexterm2 native..posix::basic_descriptor]
+Get the native descriptor representation.
+
 
   native_type native();
 
@@ -47599,7 +51662,9 @@
 
 [section:native_type posix::basic_descriptor::native_type]
 
-[indexterm2 native_type..posix::basic_descriptor] The native representation of a descriptor.
+[indexterm2 native_type..posix::basic_descriptor]
+The native representation of a descriptor.
+
 
   typedef DescriptorService::native_type native_type;
 
@@ -47621,7 +51686,9 @@
 
 ['Inherited from posix::descriptor_base.]
 
-[indexterm2 non_blocking_io..posix::basic_descriptor] IO control command to set the blocking mode of the descriptor.
+[indexterm2 non_blocking_io..posix::basic_descriptor]
+IO control command to set the blocking mode of the descriptor.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -47643,6 +51710,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/basic_descriptor.hpp]
@@ -47659,7 +51728,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..posix::basic_descriptor] The service associated with the I/O object.
+[indexterm2 service..posix::basic_descriptor]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -47674,7 +51745,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..posix::basic_descriptor] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..posix::basic_descriptor]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef DescriptorService service_type;
 
@@ -47693,7 +51766,9 @@
 
 [section:_basic_descriptor posix::basic_descriptor::~basic_descriptor]
 
-[indexterm2 ~basic_descriptor..posix::basic_descriptor] Protected destructor to prevent deletion through this type.
+[indexterm2 ~basic_descriptor..posix::basic_descriptor]
+Protected destructor to prevent deletion through this type.
+
 
   ~basic_descriptor();
 
@@ -47707,8 +51782,10 @@
 
 [section:posix__basic_stream_descriptor posix::basic_stream_descriptor]
 
+
 Provides stream-oriented descriptor functionality.
 
+
   template<
       typename ``[link boost_asio.reference.StreamDescriptorService StreamDescriptorService]`` = stream_descriptor_service>
   class basic_stream_descriptor :
@@ -47859,14 +51936,16 @@
 
 ]
 
-The posix::basic_stream_descriptor class template provides asynchronous and blocking stream-oriented descriptor functionality.
+The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -47877,7 +51956,9 @@
 
 [section:assign posix::basic_stream_descriptor::assign]
 
-[indexterm2 assign..posix::basic_stream_descriptor] Assign an existing native descriptor to the descriptor.
+[indexterm2 assign..posix::basic_stream_descriptor]
+Assign an existing native descriptor to the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_stream_descriptor.assign.overload1 assign]``(
       const native_type & native_descriptor);
@@ -47894,8 +51975,10 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Assign an existing native descriptor to the descriptor.
 
+
   void assign(
       const native_type & native_descriptor);
 
@@ -47910,8 +51993,10 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Assign an existing native descriptor to the descriptor.
 
+
   boost::system::error_code assign(
       const native_type & native_descriptor,
       boost::system::error_code & ec);
@@ -47926,7 +52011,9 @@
 
 [section:async_read_some posix::basic_stream_descriptor::async_read_some]
 
-[indexterm2 async_read_some..posix::basic_stream_descriptor] Start an asynchronous read.
+[indexterm2 async_read_some..posix::basic_stream_descriptor]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -47953,25 +52040,25 @@
      std::size_t bytes_transferred // Number of bytes read.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The read operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    descriptor.async_read_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -47981,7 +52068,9 @@
 
 [section:async_write_some posix::basic_stream_descriptor::async_write_some]
 
-[indexterm2 async_write_some..posix::basic_stream_descriptor] Start an asynchronous write.
+[indexterm2 async_write_some..posix::basic_stream_descriptor]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -48008,25 +52097,25 @@
      std::size_t bytes_transferred // Number of bytes written.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The write operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    descriptor.async_write_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -48035,13 +52124,17 @@
 
 [section:basic_stream_descriptor posix::basic_stream_descriptor::basic_stream_descriptor]
 
-[indexterm2 basic_stream_descriptor..posix::basic_stream_descriptor] Construct a basic_stream_descriptor without opening it.
+[indexterm2 basic_stream_descriptor..posix::basic_stream_descriptor]
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
 
- ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 basic_stream_descriptor]``(
+
+ explicit ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 basic_stream_descriptor]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 more...]]``
 
-Construct a basic_stream_descriptor on an existing native descriptor.
+
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
+
 
   ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload2 basic_stream_descriptor]``(
       boost::asio::io_service & io_service,
@@ -48051,7 +52144,9 @@
 
 [section:overload1 posix::basic_stream_descriptor::basic_stream_descriptor (1 of 2 overloads)]
 
-Construct a basic_stream_descriptor without opening it.
+
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
+
 
   basic_stream_descriptor(
       boost::asio::io_service & io_service);
@@ -48065,19 +52160,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 posix::basic_stream_descriptor::basic_stream_descriptor (2 of 2 overloads)]
 
-Construct a basic_stream_descriptor on an existing native descriptor.
+
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
+
 
   basic_stream_descriptor(
       boost::asio::io_service & io_service,
@@ -48092,12 +52190,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
 
 [[native_descriptor][The new underlying descriptor implementation.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -48109,6 +52208,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48120,7 +52220,9 @@
 
 ['Inherited from posix::descriptor_base.]
 
-[indexterm2 bytes_readable..posix::basic_stream_descriptor] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..posix::basic_stream_descriptor]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -48143,6 +52245,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
@@ -48155,7 +52259,9 @@
 
 [section:cancel posix::basic_stream_descriptor::cancel]
 
-[indexterm2 cancel..posix::basic_stream_descriptor] Cancel all asynchronous operations associated with the descriptor.
+[indexterm2 cancel..posix::basic_stream_descriptor]
+Cancel all asynchronous operations associated with the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 more...]]``
@@ -48170,12 +52276,14 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Cancel all asynchronous operations associated with the descriptor.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -48189,6 +52297,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48198,13 +52307,15 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Cancel all asynchronous operations associated with the descriptor.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -48218,6 +52329,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48225,7 +52337,9 @@
 
 [section:close posix::basic_stream_descriptor::close]
 
-[indexterm2 close..posix::basic_stream_descriptor] Close the descriptor.
+[indexterm2 close..posix::basic_stream_descriptor]
+Close the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 more...]]``
@@ -48240,12 +52354,14 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Close the descriptor.
 
+
   void close();
 
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -48259,6 +52375,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48268,13 +52385,15 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Close the descriptor.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -48288,6 +52407,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48299,17 +52419,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..posix::basic_stream_descriptor] Get the io_service associated with the object.
+[indexterm2 get_io_service..posix::basic_stream_descriptor]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -48322,7 +52445,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..posix::basic_stream_descriptor] The underlying implementation of the I/O object.
+[indexterm2 implementation..posix::basic_stream_descriptor]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -48337,7 +52462,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..posix::basic_stream_descriptor] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..posix::basic_stream_descriptor]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -48355,7 +52482,9 @@
 
 [section:io_control posix::basic_stream_descriptor::io_control]
 
-[indexterm2 io_control..posix::basic_stream_descriptor] Perform an IO control command on the descriptor.
+[indexterm2 io_control..posix::basic_stream_descriptor]
+Perform an IO control command on the descriptor.
+
 
   void ``[link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload1 io_control]``(
       IoControlCommand & command);
@@ -48372,8 +52501,10 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Perform an IO control command on the descriptor.
 
+
   void io_control(
       IoControlCommand & command);
 
@@ -48390,6 +52521,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -48399,6 +52531,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -48414,6 +52548,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48423,8 +52558,10 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Perform an IO control command on the descriptor.
 
+
   boost::system::error_code io_control(
       IoControlCommand & command,
       boost::system::error_code & ec);
@@ -48444,6 +52581,8 @@
 
 ]
 
+
+
 [heading Example]
   
 Getting the number of bytes ready to read:
@@ -48464,6 +52603,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48475,17 +52615,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..posix::basic_stream_descriptor] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..posix::basic_stream_descriptor]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -48498,7 +52641,9 @@
 
 ['Inherited from posix::basic_descriptor.]
 
-[indexterm2 is_open..posix::basic_stream_descriptor] Determine whether the descriptor is open.
+[indexterm2 is_open..posix::basic_stream_descriptor]
+Determine whether the descriptor is open.
+
 
   bool is_open() const;
 
@@ -48509,13 +52654,17 @@
 
 [section:lowest_layer posix::basic_stream_descriptor::lowest_layer]
 
-[indexterm2 lowest_layer..posix::basic_stream_descriptor] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..posix::basic_stream_descriptor]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 more...]]``
 
@@ -48525,12 +52674,14 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_descriptor cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -48539,6 +52690,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48548,12 +52700,14 @@
 
 ['Inherited from posix::basic_descriptor.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_descriptor cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -48562,6 +52716,7 @@
 
 
 
+
 [endsect]
 
 
@@ -48573,7 +52728,9 @@
 
 ['Inherited from posix::basic_descriptor.]
 
-[indexterm2 lowest_layer_type..posix::basic_stream_descriptor] A basic_descriptor is always the lowest layer.
+[indexterm2 lowest_layer_type..posix::basic_stream_descriptor]
+A [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] is always the lowest layer.
+
 
   typedef basic_descriptor< StreamDescriptorService > lowest_layer_type;
 
@@ -48713,14 +52870,15 @@
 
 ]
 
-The posix::basic_descriptor class template provides the ability to wrap a POSIX descriptor.
+The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -48740,7 +52898,9 @@
 
 ['Inherited from posix::basic_descriptor.]
 
-[indexterm2 native..posix::basic_stream_descriptor] Get the native descriptor representation.
+[indexterm2 native..posix::basic_stream_descriptor]
+Get the native descriptor representation.
+
 
   native_type native();
 
@@ -48754,7 +52914,9 @@
 
 [section:native_type posix::basic_stream_descriptor::native_type]
 
-[indexterm2 native_type..posix::basic_stream_descriptor] The native representation of a descriptor.
+[indexterm2 native_type..posix::basic_stream_descriptor]
+The native representation of a descriptor.
+
 
   typedef StreamDescriptorService::native_type native_type;
 
@@ -48776,7 +52938,9 @@
 
 ['Inherited from posix::descriptor_base.]
 
-[indexterm2 non_blocking_io..posix::basic_stream_descriptor] IO control command to set the blocking mode of the descriptor.
+[indexterm2 non_blocking_io..posix::basic_stream_descriptor]
+IO control command to set the blocking mode of the descriptor.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -48798,6 +52962,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
@@ -48810,7 +52976,9 @@
 
 [section:read_some posix::basic_stream_descriptor::read_some]
 
-[indexterm2 read_some..posix::basic_stream_descriptor] Read some data from the descriptor.
+[indexterm2 read_some..posix::basic_stream_descriptor]
+Read some data from the descriptor.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -48828,8 +52996,10 @@
 
 [section:overload1 posix::basic_stream_descriptor::read_some (1 of 2 overloads)]
 
+
 Read some data from the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -48848,34 +53018,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    descriptor.read_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -48885,8 +53057,10 @@
 
 [section:overload2 posix::basic_stream_descriptor::read_some (2 of 2 overloads)]
 
+
 Read some data from the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -48908,14 +53082,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -48930,7 +53106,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..posix::basic_stream_descriptor] The service associated with the I/O object.
+[indexterm2 service..posix::basic_stream_descriptor]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -48945,7 +53123,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..posix::basic_stream_descriptor] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..posix::basic_stream_descriptor]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef StreamDescriptorService service_type;
 
@@ -48963,7 +53143,9 @@
 
 [section:write_some posix::basic_stream_descriptor::write_some]
 
-[indexterm2 write_some..posix::basic_stream_descriptor] Write some data to the descriptor.
+[indexterm2 write_some..posix::basic_stream_descriptor]
+Write some data to the descriptor.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -48981,8 +53163,10 @@
 
 [section:overload1 posix::basic_stream_descriptor::write_some (1 of 2 overloads)]
 
+
 Write some data to the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -49001,34 +53185,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    descriptor.write_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -49038,8 +53224,10 @@
 
 [section:overload2 posix::basic_stream_descriptor::write_some (2 of 2 overloads)]
 
+
 Write some data to the descriptor.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -49061,14 +53249,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -49082,7 +53272,9 @@
 
 [section:posix__descriptor_base posix::descriptor_base]
 
-The descriptor_base class is used as a base for the basic_stream_descriptor class template so that we have a common place to define the associated IO control commands.
+
+The [link boost_asio.reference.posix__descriptor_base `posix::descriptor_base`] class is used as a base for the [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template so that we have a common place to define the associated IO control commands.
+
 
   class descriptor_base
 
@@ -49127,7 +53319,9 @@
 
 [section:bytes_readable posix::descriptor_base::bytes_readable]
 
-[indexterm2 bytes_readable..posix::descriptor_base] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..posix::descriptor_base]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -49150,6 +53344,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/descriptor_base.hpp]
@@ -49163,7 +53359,9 @@
 
 [section:non_blocking_io posix::descriptor_base::non_blocking_io]
 
-[indexterm2 non_blocking_io..posix::descriptor_base] IO control command to set the blocking mode of the descriptor.
+[indexterm2 non_blocking_io..posix::descriptor_base]
+IO control command to set the blocking mode of the descriptor.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -49185,6 +53383,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/posix/descriptor_base.hpp]
@@ -49198,7 +53398,9 @@
 
 [section:_descriptor_base posix::descriptor_base::~descriptor_base]
 
-[indexterm2 ~descriptor_base..posix::descriptor_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~descriptor_base..posix::descriptor_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~descriptor_base();
 
@@ -49213,7 +53415,9 @@
 
 [section:posix__stream_descriptor posix::stream_descriptor]
 
-[indexterm1 posix::stream_descriptor] Typedef for the typical usage of a stream-oriented descriptor.
+[indexterm1 posix::stream_descriptor]
+Typedef for the typical usage of a stream-oriented descriptor.
+
 
   typedef basic_stream_descriptor stream_descriptor;
 
@@ -49362,14 +53566,16 @@
 
 ]
 
-The posix::basic_stream_descriptor class template provides asynchronous and blocking stream-oriented descriptor functionality.
+The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -49385,8 +53591,10 @@
 
 [section:posix__stream_descriptor_service posix::stream_descriptor_service]
 
+
 Default service implementation for a stream descriptor.
 
+
   class stream_descriptor_service :
     public io_service::service
 
@@ -49517,7 +53725,9 @@
 
 [section:assign posix::stream_descriptor_service::assign]
 
-[indexterm2 assign..posix::stream_descriptor_service] Assign an existing native descriptor to a stream descriptor.
+[indexterm2 assign..posix::stream_descriptor_service]
+Assign an existing native descriptor to a stream descriptor.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -49532,7 +53742,9 @@
 
 [section:async_read_some posix::stream_descriptor_service::async_read_some]
 
-[indexterm2 async_read_some..posix::stream_descriptor_service] Start an asynchronous read.
+[indexterm2 async_read_some..posix::stream_descriptor_service]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -49550,7 +53762,9 @@
 
 [section:async_write_some posix::stream_descriptor_service::async_write_some]
 
-[indexterm2 async_write_some..posix::stream_descriptor_service] Start an asynchronous write.
+[indexterm2 async_write_some..posix::stream_descriptor_service]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -49568,7 +53782,9 @@
 
 [section:cancel posix::stream_descriptor_service::cancel]
 
-[indexterm2 cancel..posix::stream_descriptor_service] Cancel all asynchronous operations associated with the descriptor.
+[indexterm2 cancel..posix::stream_descriptor_service]
+Cancel all asynchronous operations associated with the descriptor.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -49582,7 +53798,9 @@
 
 [section:close posix::stream_descriptor_service::close]
 
-[indexterm2 close..posix::stream_descriptor_service] Close a stream descriptor implementation.
+[indexterm2 close..posix::stream_descriptor_service]
+Close a stream descriptor implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -49596,7 +53814,9 @@
 
 [section:construct posix::stream_descriptor_service::construct]
 
-[indexterm2 construct..posix::stream_descriptor_service] Construct a new stream descriptor implementation.
+[indexterm2 construct..posix::stream_descriptor_service]
+Construct a new stream descriptor implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -49609,7 +53829,9 @@
 
 [section:destroy posix::stream_descriptor_service::destroy]
 
-[indexterm2 destroy..posix::stream_descriptor_service] Destroy a stream descriptor implementation.
+[indexterm2 destroy..posix::stream_descriptor_service]
+Destroy a stream descriptor implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -49625,7 +53847,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..posix::stream_descriptor_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..posix::stream_descriptor_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -49637,7 +53861,9 @@
 
 [section:id posix::stream_descriptor_service::id]
 
-[indexterm2 id..posix::stream_descriptor_service] The unique service identifier.
+[indexterm2 id..posix::stream_descriptor_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -49649,7 +53875,9 @@
 
 [section:implementation_type posix::stream_descriptor_service::implementation_type]
 
-[indexterm2 implementation_type..posix::stream_descriptor_service] The type of a stream descriptor implementation.
+[indexterm2 implementation_type..posix::stream_descriptor_service]
+The type of a stream descriptor implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -49668,7 +53896,9 @@
 
 [section:io_control posix::stream_descriptor_service::io_control]
 
-[indexterm2 io_control..posix::stream_descriptor_service] Perform an IO control command on the descriptor.
+[indexterm2 io_control..posix::stream_descriptor_service]
+Perform an IO control command on the descriptor.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -49688,7 +53918,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..posix::stream_descriptor_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..posix::stream_descriptor_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -49700,7 +53932,9 @@
 
 [section:is_open posix::stream_descriptor_service::is_open]
 
-[indexterm2 is_open..posix::stream_descriptor_service] Determine whether the descriptor is open.
+[indexterm2 is_open..posix::stream_descriptor_service]
+Determine whether the descriptor is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -49713,7 +53947,9 @@
 
 [section:native posix::stream_descriptor_service::native]
 
-[indexterm2 native..posix::stream_descriptor_service] Get the native descriptor implementation.
+[indexterm2 native..posix::stream_descriptor_service]
+Get the native descriptor implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -49726,7 +53962,9 @@
 
 [section:native_type posix::stream_descriptor_service::native_type]
 
-[indexterm2 native_type..posix::stream_descriptor_service] The native descriptor type.
+[indexterm2 native_type..posix::stream_descriptor_service]
+The native descriptor type.
+
 
   typedef implementation_defined native_type;
 
@@ -49745,7 +53983,9 @@
 
 [section:read_some posix::stream_descriptor_service::read_some]
 
-[indexterm2 read_some..posix::stream_descriptor_service] Read some data from the stream.
+[indexterm2 read_some..posix::stream_descriptor_service]
+Read some data from the stream.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -49762,7 +54002,9 @@
 
 [section:shutdown_service posix::stream_descriptor_service::shutdown_service]
 
-[indexterm2 shutdown_service..posix::stream_descriptor_service] Destroy all user-defined descriptorr objects owned by the service.
+[indexterm2 shutdown_service..posix::stream_descriptor_service]
+Destroy all user-defined descriptorr objects owned by the service.
+
 
   void shutdown_service();
 
@@ -49774,7 +54016,9 @@
 
 [section:stream_descriptor_service posix::stream_descriptor_service::stream_descriptor_service]
 
-[indexterm2 stream_descriptor_service..posix::stream_descriptor_service] Construct a new stream descriptor service for the specified io_service.
+[indexterm2 stream_descriptor_service..posix::stream_descriptor_service]
+Construct a new stream descriptor service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   stream_descriptor_service(
       boost::asio::io_service & io_service);
@@ -49787,7 +54031,9 @@
 
 [section:write_some posix::stream_descriptor_service::write_some]
 
-[indexterm2 write_some..posix::stream_descriptor_service] Write the given data to the stream.
+[indexterm2 write_some..posix::stream_descriptor_service]
+Write the given data to the stream.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -49806,8 +54052,10 @@
 
 [section:raw_socket_service raw_socket_service]
 
+
 Default service implementation for a raw socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``>
   class raw_socket_service :
@@ -50029,7 +54277,9 @@
 
 [section:assign raw_socket_service::assign]
 
-[indexterm2 assign..raw_socket_service] Assign an existing native socket to a raw socket.
+[indexterm2 assign..raw_socket_service]
+Assign an existing native socket to a raw socket.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -50045,7 +54295,9 @@
 
 [section:async_connect raw_socket_service::async_connect]
 
-[indexterm2 async_connect..raw_socket_service] Start an asynchronous connect.
+[indexterm2 async_connect..raw_socket_service]
+Start an asynchronous connect.
+
 
   template<
       typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
@@ -50062,7 +54314,9 @@
 
 [section:async_receive raw_socket_service::async_receive]
 
-[indexterm2 async_receive..raw_socket_service] Start an asynchronous receive.
+[indexterm2 async_receive..raw_socket_service]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -50081,7 +54335,9 @@
 
 [section:async_receive_from raw_socket_service::async_receive_from]
 
-[indexterm2 async_receive_from..raw_socket_service] Start an asynchronous receive that will get the endpoint of the sender.
+[indexterm2 async_receive_from..raw_socket_service]
+Start an asynchronous receive that will get the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -50101,7 +54357,9 @@
 
 [section:async_send raw_socket_service::async_send]
 
-[indexterm2 async_send..raw_socket_service] Start an asynchronous send.
+[indexterm2 async_send..raw_socket_service]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -50120,7 +54378,9 @@
 
 [section:async_send_to raw_socket_service::async_send_to]
 
-[indexterm2 async_send_to..raw_socket_service] Start an asynchronous send.
+[indexterm2 async_send_to..raw_socket_service]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -50140,7 +54400,9 @@
 
 [section:at_mark raw_socket_service::at_mark]
 
-[indexterm2 at_mark..raw_socket_service] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..raw_socket_service]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool at_mark(
       const implementation_type & impl,
@@ -50154,7 +54416,9 @@
 
 [section:available raw_socket_service::available]
 
-[indexterm2 available..raw_socket_service] Determine the number of bytes available for reading.
+[indexterm2 available..raw_socket_service]
+Determine the number of bytes available for reading.
+
 
   std::size_t available(
       const implementation_type & impl,
@@ -50183,7 +54447,9 @@
 
 [section:cancel raw_socket_service::cancel]
 
-[indexterm2 cancel..raw_socket_service] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..raw_socket_service]
+Cancel all asynchronous operations associated with the socket.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -50197,7 +54463,9 @@
 
 [section:close raw_socket_service::close]
 
-[indexterm2 close..raw_socket_service] Close a raw socket implementation.
+[indexterm2 close..raw_socket_service]
+Close a raw socket implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -50211,7 +54479,9 @@
 
 [section:connect raw_socket_service::connect]
 
-[indexterm2 connect..raw_socket_service] Connect the raw socket to the specified endpoint.
+[indexterm2 connect..raw_socket_service]
+Connect the raw socket to the specified endpoint.
+
 
   boost::system::error_code connect(
       implementation_type & impl,
@@ -50226,7 +54496,9 @@
 
 [section:construct raw_socket_service::construct]
 
-[indexterm2 construct..raw_socket_service] Construct a new raw socket implementation.
+[indexterm2 construct..raw_socket_service]
+Construct a new raw socket implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -50239,7 +54511,9 @@
 
 [section:destroy raw_socket_service::destroy]
 
-[indexterm2 destroy..raw_socket_service] Destroy a raw socket implementation.
+[indexterm2 destroy..raw_socket_service]
+Destroy a raw socket implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -50252,7 +54526,9 @@
 
 [section:endpoint_type raw_socket_service::endpoint_type]
 
-[indexterm2 endpoint_type..raw_socket_service] The endpoint type.
+[indexterm2 endpoint_type..raw_socket_service]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -50274,7 +54550,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..raw_socket_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..raw_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -50286,7 +54564,9 @@
 
 [section:get_option raw_socket_service::get_option]
 
-[indexterm2 get_option..raw_socket_service] Get a socket option.
+[indexterm2 get_option..raw_socket_service]
+Get a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -50303,7 +54583,9 @@
 
 [section:id raw_socket_service::id]
 
-[indexterm2 id..raw_socket_service] The unique service identifier.
+[indexterm2 id..raw_socket_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -50315,7 +54597,9 @@
 
 [section:implementation_type raw_socket_service::implementation_type]
 
-[indexterm2 implementation_type..raw_socket_service] The type of a raw socket.
+[indexterm2 implementation_type..raw_socket_service]
+The type of a raw socket.
+
 
   typedef implementation_defined implementation_type;
 
@@ -50334,7 +54618,9 @@
 
 [section:io_control raw_socket_service::io_control]
 
-[indexterm2 io_control..raw_socket_service] Perform an IO control command on the socket.
+[indexterm2 io_control..raw_socket_service]
+Perform an IO control command on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -50354,7 +54640,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..raw_socket_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..raw_socket_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -50366,7 +54654,9 @@
 
 [section:is_open raw_socket_service::is_open]
 
-[indexterm2 is_open..raw_socket_service] Determine whether the socket is open.
+[indexterm2 is_open..raw_socket_service]
+Determine whether the socket is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -50379,7 +54669,9 @@
 
 [section:local_endpoint raw_socket_service::local_endpoint]
 
-[indexterm2 local_endpoint..raw_socket_service] Get the local endpoint.
+[indexterm2 local_endpoint..raw_socket_service]
+Get the local endpoint.
+
 
   endpoint_type local_endpoint(
       const implementation_type & impl,
@@ -50393,7 +54685,9 @@
 
 [section:native raw_socket_service::native]
 
-[indexterm2 native..raw_socket_service] Get the native socket implementation.
+[indexterm2 native..raw_socket_service]
+Get the native socket implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -50406,7 +54700,9 @@
 
 [section:native_type raw_socket_service::native_type]
 
-[indexterm2 native_type..raw_socket_service] The native socket type.
+[indexterm2 native_type..raw_socket_service]
+The native socket type.
+
 
   typedef implementation_defined native_type;
 
@@ -50440,7 +54736,9 @@
 
 [section:protocol_type raw_socket_service::protocol_type]
 
-[indexterm2 protocol_type..raw_socket_service] The protocol type.
+[indexterm2 protocol_type..raw_socket_service]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -50459,7 +54757,9 @@
 
 [section:raw_socket_service raw_socket_service::raw_socket_service]
 
-[indexterm2 raw_socket_service..raw_socket_service] Construct a new raw socket service for the specified io_service.
+[indexterm2 raw_socket_service..raw_socket_service]
+Construct a new raw socket service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   raw_socket_service(
       boost::asio::io_service & io_service);
@@ -50472,7 +54772,9 @@
 
 [section:receive raw_socket_service::receive]
 
-[indexterm2 receive..raw_socket_service] Receive some data from the peer.
+[indexterm2 receive..raw_socket_service]
+Receive some data from the peer.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -50490,7 +54792,9 @@
 
 [section:receive_from raw_socket_service::receive_from]
 
-[indexterm2 receive_from..raw_socket_service] Receive raw data with the endpoint of the sender.
+[indexterm2 receive_from..raw_socket_service]
+Receive raw data with the endpoint of the sender.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -50509,7 +54813,9 @@
 
 [section:remote_endpoint raw_socket_service::remote_endpoint]
 
-[indexterm2 remote_endpoint..raw_socket_service] Get the remote endpoint.
+[indexterm2 remote_endpoint..raw_socket_service]
+Get the remote endpoint.
+
 
   endpoint_type remote_endpoint(
       const implementation_type & impl,
@@ -50523,7 +54829,9 @@
 
 [section:send raw_socket_service::send]
 
-[indexterm2 send..raw_socket_service] Send the given data to the peer.
+[indexterm2 send..raw_socket_service]
+Send the given data to the peer.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -50541,7 +54849,9 @@
 
 [section:send_to raw_socket_service::send_to]
 
-[indexterm2 send_to..raw_socket_service] Send raw data to the specified endpoint.
+[indexterm2 send_to..raw_socket_service]
+Send raw data to the specified endpoint.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -50560,7 +54870,9 @@
 
 [section:set_option raw_socket_service::set_option]
 
-[indexterm2 set_option..raw_socket_service] Set a socket option.
+[indexterm2 set_option..raw_socket_service]
+Set a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -50577,7 +54889,9 @@
 
 [section:shutdown raw_socket_service::shutdown]
 
-[indexterm2 shutdown..raw_socket_service] Disable sends or receives on the socket.
+[indexterm2 shutdown..raw_socket_service]
+Disable sends or receives on the socket.
+
 
   boost::system::error_code shutdown(
       implementation_type & impl,
@@ -50592,7 +54906,9 @@
 
 [section:shutdown_service raw_socket_service::shutdown_service]
 
-[indexterm2 shutdown_service..raw_socket_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..raw_socket_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -50606,7 +54922,9 @@
 
 [section:read read]
 
-[indexterm1 read] Attempt to read a certain amount of data from a stream before returning.
+[indexterm1 read]
+Attempt to read a certain amount of data from a stream before returning.
+
       
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
@@ -50675,8 +54993,10 @@
 
 [section:overload1 read (1 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -50690,6 +55010,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function.
@@ -50706,10 +55027,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -50719,16 +55042,16 @@
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::read(s, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -50743,14 +55066,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 read (2 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -50766,6 +55092,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function.
@@ -50794,10 +55121,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -50807,17 +55136,17 @@
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::read(s, boost::asio::buffer(data, size),
        boost::asio::transfer_at_least(32));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -50827,8 +55156,10 @@
 
 [section:overload3 read (3 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -50845,6 +55176,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function.
@@ -50875,20 +55207,24 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 read (4 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -50912,14 +55248,16 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -50929,6 +55267,7 @@
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -50942,14 +55281,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 read (5 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator,
@@ -50975,7 +55317,7 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -50991,10 +55333,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -51006,14 +55350,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 read (6 of 6 overloads)]
 
+
 Attempt to read a certain amount of data from a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator,
@@ -51040,7 +55387,7 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -51058,12 +55405,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
@@ -51071,7 +55420,9 @@
 
 [section:read_at read_at]
 
-[indexterm1 read_at] Attempt to read a certain amount of data at the specified offset before returning.
+[indexterm1 read_at]
+Attempt to read a certain amount of data at the specified offset before returning.
+
       
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
@@ -51146,8 +55497,10 @@
 
 [section:overload1 read_at (1 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -51162,6 +55515,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
@@ -51180,10 +55534,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -51193,16 +55549,16 @@
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::read_at(d, 42, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -51217,14 +55573,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 read_at (2 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -51241,6 +55600,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
@@ -51271,10 +55631,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -51284,17 +55646,17 @@
 
 ]
 
+
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::read_at(d, 42, boost::asio::buffer(data, size),
        boost::asio::transfer_at_least(32));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -51304,8 +55666,10 @@
 
 [section:overload3 read_at (3 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -51323,6 +55687,7 @@
 
 * The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
@@ -51355,20 +55720,24 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 read_at (4 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename Allocator>
@@ -51395,14 +55764,16 @@
 
 [[offset][The offset at which the data will be read.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -51412,6 +55783,7 @@
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -51425,14 +55797,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 read_at (5 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename Allocator,
@@ -51461,7 +55836,7 @@
 
 [[offset][The offset at which the data will be read.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -51477,10 +55852,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -51492,14 +55869,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 read_at (6 of 6 overloads)]
 
+
 Attempt to read a certain amount of data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename Allocator,
@@ -51529,7 +55909,7 @@
 
 [[offset][The offset at which the data will be read.]]
 
-[[b][The basic\_streambuf object into which the data will be read.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
 [[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
 ``
@@ -51547,12 +55927,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
@@ -51560,7 +55942,9 @@
 
 [section:read_until read_until]
 
-[indexterm1 read_until] Read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
+[indexterm1 read_until]
+Read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
+
       
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
@@ -51651,8 +56035,10 @@
 
 [section:overload1 read_until (1 of 8 overloads)]
 
+
 Read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51667,6 +56053,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
@@ -51685,10 +56072,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the delimiter.
 
+
 [heading Exceptions]
     
 
@@ -51698,10 +56087,12 @@
 
 ]
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
+
 [heading Example]
   
 To read data into a streambuf until a newline is encountered:
@@ -51717,14 +56108,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 read_until (2 of 8 overloads)]
 
+
 Read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51740,6 +56134,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
@@ -51760,24 +56155,29 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
 
+
 [endsect]
 
 
 
 [section:overload3 read_until (3 of 8 overloads)]
 
+
 Read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51792,6 +56192,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
@@ -51810,10 +56211,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the delimiter.
 
+
 [heading Exceptions]
     
 
@@ -51823,10 +56226,12 @@
 
 ]
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
+
 [heading Example]
   
 To read data into a streambuf until a newline is encountered:
@@ -51842,14 +56247,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 read_until (4 of 8 overloads)]
 
+
 Read data into a streambuf until it contains a specified delimiter.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51865,6 +56273,7 @@
 
 * The get area of the streambuf contains the specified delimiter.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
@@ -51885,24 +56294,29 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 read_until (5 of 8 overloads)]
 
+
 Read data into a streambuf until some part of the data it contains matches a regular expression.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51917,6 +56331,7 @@
 
 * A substring of the streambuf's get area matches the regular expression.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
@@ -51935,10 +56350,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression.
 
+
 [heading Exceptions]
     
 
@@ -51948,10 +56365,12 @@
 
 ]
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
+
 [heading Example]
   
 To read data into a streambuf until a CR-LF sequence is encountered:
@@ -51967,14 +56386,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 read_until (6 of 8 overloads)]
 
+
 Read data into a streambuf until some part of the data it contains matches a regular expression.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
@@ -51990,6 +56412,7 @@
 
 * A substring of the streambuf's get area matches the regular expression.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
@@ -52010,24 +56433,29 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
 
+
 [endsect]
 
 
 
 [section:overload7 read_until (7 of 8 overloads)]
 
+
 Read data into a streambuf until a function object indicates a match.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator,
@@ -52044,6 +56472,7 @@
 
 * The match condition function object returns a std::pair where the second element evaluates to true.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
@@ -52070,10 +56499,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area that have been fully consumed by the match function.
 
+
 [heading Exceptions]
     
 
@@ -52083,12 +56514,14 @@
 
 ]
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
 
 The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
 
+
 [heading Examples]
   
 To read data into a streambuf until whitespace is encountered:
@@ -52152,8 +56585,10 @@
 
 [section:overload8 read_until (8 of 8 overloads)]
 
+
 Read data into a streambuf until a function object indicates a match.
 
+
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator,
@@ -52171,6 +56606,7 @@
 
 * The match condition function object returns a std::pair where the second element evaluates to true.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
@@ -52199,10 +56635,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes in the streambuf's get area that have been fully consumed by the match function. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
 After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
@@ -52211,6 +56649,7 @@
 
 
 
+
 [endsect]
 
 
@@ -52219,7 +56658,9 @@
 
 [section:serial_port serial_port]
 
-[indexterm1 serial_port] Typedef for the typical usage of a serial port.
+[indexterm1 serial_port]
+Typedef for the typical usage of a serial port.
+
 
   typedef basic_serial_port serial_port;
 
@@ -52371,14 +56812,15 @@
 
 ]
 
-The basic_serial_port class template provides functionality that is common to all serial ports.
+The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template provides functionality that is common to all serial ports.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -52394,7 +56836,9 @@
 
 [section:serial_port_base serial_port_base]
 
-The serial_port_base class is used as a base for the basic_serial_port class template so that we have a common place to define the serial port options.
+
+The [link boost_asio.reference.serial_port_base `serial_port_base`] class is used as a base for the [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template so that we have a common place to define the serial port options.
+
 
   class serial_port_base
 
@@ -52460,7 +56904,9 @@
 
 [section:_serial_port_base serial_port_base::~serial_port_base]
 
-[indexterm2 ~serial_port_base..serial_port_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~serial_port_base..serial_port_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~serial_port_base();
 
@@ -52474,8 +56920,10 @@
 
 [section:serial_port_base__baud_rate serial_port_base::baud_rate]
 
+
 Serial port option to permit changing the baud rate.
 
+
   class baud_rate
 
 
@@ -52571,8 +57019,10 @@
 
 [section:serial_port_base__character_size serial_port_base::character_size]
 
+
 Serial port option to permit changing the character size.
 
+
   class character_size
 
 
@@ -52668,8 +57118,10 @@
 
 [section:serial_port_base__flow_control serial_port_base::flow_control]
 
+
 Serial port option to permit changing the flow control.
 
+
   class flow_control
 
 
@@ -52814,8 +57266,10 @@
 
 [section:serial_port_base__parity serial_port_base::parity]
 
+
 Serial port option to permit changing the parity.
 
+
   class parity
 
 
@@ -52960,8 +57414,10 @@
 
 [section:serial_port_base__stop_bits serial_port_base::stop_bits]
 
+
 Serial port option to permit changing the number of stop bits.
 
+
   class stop_bits
 
 
@@ -53106,8 +57562,10 @@
 
 [section:serial_port_service serial_port_service]
 
+
 Default service implementation for a serial port.
 
+
   class serial_port_service :
     public io_service::service
 
@@ -53253,7 +57711,9 @@
 
 [section:assign serial_port_service::assign]
 
-[indexterm2 assign..serial_port_service] Assign an existing native handle to a serial port.
+[indexterm2 assign..serial_port_service]
+Assign an existing native handle to a serial port.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -53268,7 +57728,9 @@
 
 [section:async_read_some serial_port_service::async_read_some]
 
-[indexterm2 async_read_some..serial_port_service] Start an asynchronous read.
+[indexterm2 async_read_some..serial_port_service]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -53286,7 +57748,9 @@
 
 [section:async_write_some serial_port_service::async_write_some]
 
-[indexterm2 async_write_some..serial_port_service] Start an asynchronous write.
+[indexterm2 async_write_some..serial_port_service]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -53304,7 +57768,9 @@
 
 [section:cancel serial_port_service::cancel]
 
-[indexterm2 cancel..serial_port_service] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..serial_port_service]
+Cancel all asynchronous operations associated with the handle.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -53318,7 +57784,9 @@
 
 [section:close serial_port_service::close]
 
-[indexterm2 close..serial_port_service] Close a serial port implementation.
+[indexterm2 close..serial_port_service]
+Close a serial port implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -53332,7 +57800,9 @@
 
 [section:construct serial_port_service::construct]
 
-[indexterm2 construct..serial_port_service] Construct a new serial port implementation.
+[indexterm2 construct..serial_port_service]
+Construct a new serial port implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -53345,7 +57815,9 @@
 
 [section:destroy serial_port_service::destroy]
 
-[indexterm2 destroy..serial_port_service] Destroy a serial port implementation.
+[indexterm2 destroy..serial_port_service]
+Destroy a serial port implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -53361,7 +57833,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..serial_port_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..serial_port_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -53373,7 +57847,9 @@
 
 [section:get_option serial_port_service::get_option]
 
-[indexterm2 get_option..serial_port_service] Get a serial port option.
+[indexterm2 get_option..serial_port_service]
+Get a serial port option.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
@@ -53390,7 +57866,9 @@
 
 [section:id serial_port_service::id]
 
-[indexterm2 id..serial_port_service] The unique service identifier.
+[indexterm2 id..serial_port_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -53402,7 +57880,9 @@
 
 [section:implementation_type serial_port_service::implementation_type]
 
-[indexterm2 implementation_type..serial_port_service] The type of a serial port implementation.
+[indexterm2 implementation_type..serial_port_service]
+The type of a serial port implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -53424,7 +57904,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..serial_port_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..serial_port_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -53436,7 +57918,9 @@
 
 [section:is_open serial_port_service::is_open]
 
-[indexterm2 is_open..serial_port_service] Determine whether the handle is open.
+[indexterm2 is_open..serial_port_service]
+Determine whether the handle is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -53449,7 +57933,9 @@
 
 [section:native serial_port_service::native]
 
-[indexterm2 native..serial_port_service] Get the native handle implementation.
+[indexterm2 native..serial_port_service]
+Get the native handle implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -53462,7 +57948,9 @@
 
 [section:native_type serial_port_service::native_type]
 
-[indexterm2 native_type..serial_port_service] The native handle type.
+[indexterm2 native_type..serial_port_service]
+The native handle type.
+
 
   typedef implementation_defined native_type;
 
@@ -53481,7 +57969,9 @@
 
 [section:open serial_port_service::open]
 
-[indexterm2 open..serial_port_service] Open a serial port.
+[indexterm2 open..serial_port_service]
+Open a serial port.
+
 
   boost::system::error_code open(
       implementation_type & impl,
@@ -53496,7 +57986,9 @@
 
 [section:read_some serial_port_service::read_some]
 
-[indexterm2 read_some..serial_port_service] Read some data from the stream.
+[indexterm2 read_some..serial_port_service]
+Read some data from the stream.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -53513,7 +58005,9 @@
 
 [section:send_break serial_port_service::send_break]
 
-[indexterm2 send_break..serial_port_service] Send a break sequence to the serial port.
+[indexterm2 send_break..serial_port_service]
+Send a break sequence to the serial port.
+
 
   boost::system::error_code send_break(
       implementation_type & impl,
@@ -53527,7 +58021,9 @@
 
 [section:serial_port_service serial_port_service::serial_port_service]
 
-[indexterm2 serial_port_service..serial_port_service] Construct a new serial port service for the specified io_service.
+[indexterm2 serial_port_service..serial_port_service]
+Construct a new serial port service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   serial_port_service(
       boost::asio::io_service & io_service);
@@ -53540,7 +58036,9 @@
 
 [section:set_option serial_port_service::set_option]
 
-[indexterm2 set_option..serial_port_service] Set a serial port option.
+[indexterm2 set_option..serial_port_service]
+Set a serial port option.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
@@ -53557,7 +58055,9 @@
 
 [section:shutdown_service serial_port_service::shutdown_service]
 
-[indexterm2 shutdown_service..serial_port_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..serial_port_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -53569,7 +58069,9 @@
 
 [section:write_some serial_port_service::write_some]
 
-[indexterm2 write_some..serial_port_service] Write the given data to the stream.
+[indexterm2 write_some..serial_port_service]
+Write the given data to the stream.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -53588,7 +58090,9 @@
 
 [section:service_already_exists service_already_exists]
 
-Exception thrown when trying to add a duplicate service to an io_service.
+
+Exception thrown when trying to add a duplicate service to an [link boost_asio.reference.io_service `io_service`].
+
 
   class service_already_exists
 
@@ -53627,8 +58131,10 @@
 
 [section:socket_acceptor_service socket_acceptor_service]
 
+
 Default service implementation for a socket acceptor.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``>
   class socket_acceptor_service :
@@ -53795,7 +58301,9 @@
 
 [section:accept socket_acceptor_service::accept]
 
-[indexterm2 accept..socket_acceptor_service] Accept a new connection.
+[indexterm2 accept..socket_acceptor_service]
+Accept a new connection.
+
 
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``>
@@ -53813,7 +58321,9 @@
 
 [section:assign socket_acceptor_service::assign]
 
-[indexterm2 assign..socket_acceptor_service] Assign an existing native acceptor to a socket acceptor.
+[indexterm2 assign..socket_acceptor_service]
+Assign an existing native acceptor to a socket acceptor.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -53829,7 +58339,9 @@
 
 [section:async_accept socket_acceptor_service::async_accept]
 
-[indexterm2 async_accept..socket_acceptor_service] Start an asynchronous accept.
+[indexterm2 async_accept..socket_acceptor_service]
+Start an asynchronous accept.
+
 
   template<
       typename ``[link boost_asio.reference.SocketService SocketService]``,
@@ -53848,7 +58360,9 @@
 
 [section:bind socket_acceptor_service::bind]
 
-[indexterm2 bind..socket_acceptor_service] Bind the socket acceptor to the specified local endpoint.
+[indexterm2 bind..socket_acceptor_service]
+Bind the socket acceptor to the specified local endpoint.
+
 
   boost::system::error_code bind(
       implementation_type & impl,
@@ -53863,7 +58377,9 @@
 
 [section:cancel socket_acceptor_service::cancel]
 
-[indexterm2 cancel..socket_acceptor_service] Cancel all asynchronous operations associated with the acceptor.
+[indexterm2 cancel..socket_acceptor_service]
+Cancel all asynchronous operations associated with the acceptor.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -53877,7 +58393,9 @@
 
 [section:close socket_acceptor_service::close]
 
-[indexterm2 close..socket_acceptor_service] Close a socket acceptor implementation.
+[indexterm2 close..socket_acceptor_service]
+Close a socket acceptor implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -53891,7 +58409,9 @@
 
 [section:construct socket_acceptor_service::construct]
 
-[indexterm2 construct..socket_acceptor_service] Construct a new socket acceptor implementation.
+[indexterm2 construct..socket_acceptor_service]
+Construct a new socket acceptor implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -53904,7 +58424,9 @@
 
 [section:destroy socket_acceptor_service::destroy]
 
-[indexterm2 destroy..socket_acceptor_service] Destroy a socket acceptor implementation.
+[indexterm2 destroy..socket_acceptor_service]
+Destroy a socket acceptor implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -53917,7 +58439,9 @@
 
 [section:endpoint_type socket_acceptor_service::endpoint_type]
 
-[indexterm2 endpoint_type..socket_acceptor_service] The endpoint type.
+[indexterm2 endpoint_type..socket_acceptor_service]
+The endpoint type.
+
 
   typedef protocol_type::endpoint endpoint_type;
 
@@ -53939,7 +58463,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..socket_acceptor_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..socket_acceptor_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -53951,7 +58477,9 @@
 
 [section:get_option socket_acceptor_service::get_option]
 
-[indexterm2 get_option..socket_acceptor_service] Get a socket option.
+[indexterm2 get_option..socket_acceptor_service]
+Get a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -53968,7 +58496,9 @@
 
 [section:id socket_acceptor_service::id]
 
-[indexterm2 id..socket_acceptor_service] The unique service identifier.
+[indexterm2 id..socket_acceptor_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -53980,7 +58510,9 @@
 
 [section:implementation_type socket_acceptor_service::implementation_type]
 
-[indexterm2 implementation_type..socket_acceptor_service] The native type of the socket acceptor.
+[indexterm2 implementation_type..socket_acceptor_service]
+The native type of the socket acceptor.
+
 
   typedef implementation_defined implementation_type;
 
@@ -53999,7 +58531,9 @@
 
 [section:io_control socket_acceptor_service::io_control]
 
-[indexterm2 io_control..socket_acceptor_service] Perform an IO control command on the socket.
+[indexterm2 io_control..socket_acceptor_service]
+Perform an IO control command on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -54019,7 +58553,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..socket_acceptor_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..socket_acceptor_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -54031,7 +58567,9 @@
 
 [section:is_open socket_acceptor_service::is_open]
 
-[indexterm2 is_open..socket_acceptor_service] Determine whether the acceptor is open.
+[indexterm2 is_open..socket_acceptor_service]
+Determine whether the acceptor is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -54044,7 +58582,9 @@
 
 [section:listen socket_acceptor_service::listen]
 
-[indexterm2 listen..socket_acceptor_service] Place the socket acceptor into the state where it will listen for new connections.
+[indexterm2 listen..socket_acceptor_service]
+Place the socket acceptor into the state where it will listen for new connections.
+
 
   boost::system::error_code listen(
       implementation_type & impl,
@@ -54059,7 +58599,9 @@
 
 [section:local_endpoint socket_acceptor_service::local_endpoint]
 
-[indexterm2 local_endpoint..socket_acceptor_service] Get the local endpoint.
+[indexterm2 local_endpoint..socket_acceptor_service]
+Get the local endpoint.
+
 
   endpoint_type local_endpoint(
       const implementation_type & impl,
@@ -54073,7 +58615,9 @@
 
 [section:native socket_acceptor_service::native]
 
-[indexterm2 native..socket_acceptor_service] Get the native acceptor implementation.
+[indexterm2 native..socket_acceptor_service]
+Get the native acceptor implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -54086,7 +58630,9 @@
 
 [section:native_type socket_acceptor_service::native_type]
 
-[indexterm2 native_type..socket_acceptor_service] The native acceptor type.
+[indexterm2 native_type..socket_acceptor_service]
+The native acceptor type.
+
 
   typedef implementation_defined native_type;
 
@@ -54105,7 +58651,9 @@
 
 [section:open socket_acceptor_service::open]
 
-[indexterm2 open..socket_acceptor_service] Open a new socket acceptor implementation.
+[indexterm2 open..socket_acceptor_service]
+Open a new socket acceptor implementation.
+
 
   boost::system::error_code open(
       implementation_type & impl,
@@ -54120,7 +58668,9 @@
 
 [section:protocol_type socket_acceptor_service::protocol_type]
 
-[indexterm2 protocol_type..socket_acceptor_service] The protocol type.
+[indexterm2 protocol_type..socket_acceptor_service]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -54139,7 +58689,9 @@
 
 [section:set_option socket_acceptor_service::set_option]
 
-[indexterm2 set_option..socket_acceptor_service] Set a socket option.
+[indexterm2 set_option..socket_acceptor_service]
+Set a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -54156,7 +58708,9 @@
 
 [section:shutdown_service socket_acceptor_service::shutdown_service]
 
-[indexterm2 shutdown_service..socket_acceptor_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..socket_acceptor_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -54168,7 +58722,9 @@
 
 [section:socket_acceptor_service socket_acceptor_service::socket_acceptor_service]
 
-[indexterm2 socket_acceptor_service..socket_acceptor_service] Construct a new socket acceptor service for the specified io_service.
+[indexterm2 socket_acceptor_service..socket_acceptor_service]
+Construct a new socket acceptor service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   socket_acceptor_service(
       boost::asio::io_service & io_service);
@@ -54183,7 +58739,9 @@
 
 [section:socket_base socket_base]
 
-The socket_base class is used as a base for the basic_stream_socket and basic_datagram_socket class templates so that we have a common place to define the shutdown_type and enum.
+
+The [link boost_asio.reference.socket_base `socket_base`] class is used as a base for the [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] and [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class templates so that we have a common place to define the shutdown\_type and enum.
+
 
   class socket_base
 
@@ -54345,7 +58903,9 @@
 
 [section:broadcast socket_base::broadcast]
 
-[indexterm2 broadcast..socket_base] Socket option to permit sending of broadcast messages.
+[indexterm2 broadcast..socket_base]
+Socket option to permit sending of broadcast messages.
+
 
   typedef implementation_defined broadcast;
 
@@ -54366,6 +58926,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -54378,6 +58939,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54391,7 +58954,9 @@
 
 [section:bytes_readable socket_base::bytes_readable]
 
-[indexterm2 bytes_readable..socket_base] IO control command to get the amount of data that can be read without blocking.
+[indexterm2 bytes_readable..socket_base]
+IO control command to get the amount of data that can be read without blocking.
+
 
   typedef implementation_defined bytes_readable;
 
@@ -54414,6 +58979,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54427,7 +58994,9 @@
 
 [section:debug socket_base::debug]
 
-[indexterm2 debug..socket_base] Socket option to enable socket-level debugging.
+[indexterm2 debug..socket_base]
+Socket option to enable socket-level debugging.
+
 
   typedef implementation_defined debug;
 
@@ -54448,6 +59017,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54460,6 +59030,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54473,7 +59045,9 @@
 
 [section:do_not_route socket_base::do_not_route]
 
-[indexterm2 do_not_route..socket_base] Socket option to prevent routing, use local interfaces only.
+[indexterm2 do_not_route..socket_base]
+Socket option to prevent routing, use local interfaces only.
+
 
   typedef implementation_defined do_not_route;
 
@@ -54494,6 +59068,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::udp::socket socket(io_service);
@@ -54506,6 +59081,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54519,13 +59096,15 @@
 
 [section:enable_connection_aborted socket_base::enable_connection_aborted]
 
-[indexterm2 enable_connection_aborted..socket_base] Socket option to report aborted connections on accept.
+[indexterm2 enable_connection_aborted..socket_base]
+Socket option to report aborted connections on accept.
+
 
   typedef implementation_defined enable_connection_aborted;
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with boost::asio::error::connection\_aborted. By default the option is false.
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
 
 [heading Examples]
@@ -54540,6 +59119,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -54552,6 +59132,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54565,7 +59147,9 @@
 
 [section:keep_alive socket_base::keep_alive]
 
-[indexterm2 keep_alive..socket_base] Socket option to send keep-alives.
+[indexterm2 keep_alive..socket_base]
+Socket option to send keep-alives.
+
 
   typedef implementation_defined keep_alive;
 
@@ -54586,6 +59170,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54598,6 +59183,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54611,7 +59198,9 @@
 
 [section:linger socket_base::linger]
 
-[indexterm2 linger..socket_base] Socket option to specify whether the socket lingers on close if unsent data is present.
+[indexterm2 linger..socket_base]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
   typedef implementation_defined linger;
 
@@ -54632,6 +59221,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54645,6 +59235,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54658,7 +59250,9 @@
 
 [section:max_connections socket_base::max_connections]
 
-[indexterm2 max_connections..socket_base] The maximum length of the queue of pending incoming connections.
+[indexterm2 max_connections..socket_base]
+The maximum length of the queue of pending incoming connections.
+
 
   static const int max_connections = implementation_defined;
 
@@ -54670,7 +59264,9 @@
 
 [section:message_do_not_route socket_base::message_do_not_route]
 
-[indexterm2 message_do_not_route..socket_base] Specify that the data should not be subject to routing.
+[indexterm2 message_do_not_route..socket_base]
+Specify that the data should not be subject to routing.
+
 
   static const int message_do_not_route = implementation_defined;
 
@@ -54682,7 +59278,9 @@
 
 [section:message_flags socket_base::message_flags]
 
-[indexterm2 message_flags..socket_base] Bitmask type for flags that can be passed to send and receive operations.
+[indexterm2 message_flags..socket_base]
+Bitmask type for flags that can be passed to send and receive operations.
+
 
   typedef int message_flags;
 
@@ -54701,7 +59299,9 @@
 
 [section:message_out_of_band socket_base::message_out_of_band]
 
-[indexterm2 message_out_of_band..socket_base] Process out-of-band data.
+[indexterm2 message_out_of_band..socket_base]
+Process out-of-band data.
+
 
   static const int message_out_of_band = implementation_defined;
 
@@ -54713,7 +59313,9 @@
 
 [section:message_peek socket_base::message_peek]
 
-[indexterm2 message_peek..socket_base] Peek at incoming data without removing it from the input queue.
+[indexterm2 message_peek..socket_base]
+Peek at incoming data without removing it from the input queue.
+
 
   static const int message_peek = implementation_defined;
 
@@ -54725,7 +59327,9 @@
 
 [section:non_blocking_io socket_base::non_blocking_io]
 
-[indexterm2 non_blocking_io..socket_base] IO control command to set the blocking mode of the socket.
+[indexterm2 non_blocking_io..socket_base]
+IO control command to set the blocking mode of the socket.
+
 
   typedef implementation_defined non_blocking_io;
 
@@ -54747,6 +59351,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54760,7 +59366,9 @@
 
 [section:receive_buffer_size socket_base::receive_buffer_size]
 
-[indexterm2 receive_buffer_size..socket_base] Socket option for the receive buffer size of a socket.
+[indexterm2 receive_buffer_size..socket_base]
+Socket option for the receive buffer size of a socket.
+
 
   typedef implementation_defined receive_buffer_size;
 
@@ -54781,6 +59389,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54793,6 +59402,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54806,7 +59417,9 @@
 
 [section:receive_low_watermark socket_base::receive_low_watermark]
 
-[indexterm2 receive_low_watermark..socket_base] Socket option for the receive low watermark.
+[indexterm2 receive_low_watermark..socket_base]
+Socket option for the receive low watermark.
+
 
   typedef implementation_defined receive_low_watermark;
 
@@ -54827,6 +59440,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54839,6 +59453,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54852,7 +59468,9 @@
 
 [section:reuse_address socket_base::reuse_address]
 
-[indexterm2 reuse_address..socket_base] Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 reuse_address..socket_base]
+Socket option to allow the socket to be bound to an address that is already in use.
+
 
   typedef implementation_defined reuse_address;
 
@@ -54873,6 +59491,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::acceptor acceptor(io_service);
@@ -54885,6 +59504,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54898,7 +59519,9 @@
 
 [section:send_buffer_size socket_base::send_buffer_size]
 
-[indexterm2 send_buffer_size..socket_base] Socket option for the send buffer size of a socket.
+[indexterm2 send_buffer_size..socket_base]
+Socket option for the send buffer size of a socket.
+
 
   typedef implementation_defined send_buffer_size;
 
@@ -54919,6 +59542,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54931,6 +59555,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54944,7 +59570,9 @@
 
 [section:send_low_watermark socket_base::send_low_watermark]
 
-[indexterm2 send_low_watermark..socket_base] Socket option for the send low watermark.
+[indexterm2 send_low_watermark..socket_base]
+Socket option for the send low watermark.
+
 
   typedef implementation_defined send_low_watermark;
 
@@ -54965,6 +59593,7 @@
 
 
 
+
 Getting the current option value:
 
    boost::asio::ip::tcp::socket socket(io_service);
@@ -54977,6 +59606,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/socket_base.hpp]
@@ -54990,7 +59621,9 @@
 
 [section:shutdown_type socket_base::shutdown_type]
 
-[indexterm2 shutdown_type..socket_base] Different ways a socket may be shutdown.
+[indexterm2 shutdown_type..socket_base]
+Different ways a socket may be shutdown.
+
 
   enum shutdown_type
 
@@ -55026,7 +59659,9 @@
 
 [section:_socket_base socket_base::~socket_base]
 
-[indexterm2 ~socket_base..socket_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~socket_base..socket_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~socket_base();
 
@@ -55040,8 +59675,10 @@
 
 [section:ssl__basic_context ssl::basic_context]
 
+
 SSL context.
 
+
   template<
       typename ``[link boost_asio.reference.Service Service]``>
   class basic_context :
@@ -55233,7 +59870,9 @@
 
 [section:add_verify_path ssl::basic_context::add_verify_path]
 
-[indexterm2 add_verify_path..ssl::basic_context] Add a directory containing certificate authority files to be used for performing verification.
+[indexterm2 add_verify_path..ssl::basic_context]
+Add a directory containing certificate authority files to be used for performing verification.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.add_verify_path.overload1 add_verify_path]``(
       const std::string & path);
@@ -55247,8 +59886,10 @@
 
 [section:overload1 ssl::basic_context::add_verify_path (1 of 2 overloads)]
 
+
 Add a directory containing certificate authority files to be used for performing verification.
 
+
   void add_verify_path(
       const std::string & path);
 
@@ -55265,6 +59906,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -55276,14 +59918,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::add_verify_path (2 of 2 overloads)]
 
+
 Add a directory containing certificate authority files to be used for performing verification.
 
+
   boost::system::error_code add_verify_path(
       const std::string & path,
       boost::system::error_code & ec);
@@ -55305,6 +59950,7 @@
 
 
 
+
 [endsect]
 
 
@@ -55313,7 +59959,9 @@
 
 [section:basic_context ssl::basic_context::basic_context]
 
-[indexterm2 basic_context..ssl::basic_context] Constructor.
+[indexterm2 basic_context..ssl::basic_context]
+Constructor.
+
 
   basic_context(
       boost::asio::io_service & io_service,
@@ -55330,7 +59978,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 default_workarounds..ssl::basic_context] Implement various bug workarounds.
+[indexterm2 default_workarounds..ssl::basic_context]
+Implement various bug workarounds.
+
 
   static const int default_workarounds = implementation_defined;
 
@@ -55345,7 +59995,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 file_format..ssl::basic_context] File format types.
+[indexterm2 file_format..ssl::basic_context]
+File format types.
+
 
   enum file_format
 
@@ -55375,7 +60027,9 @@
 
 [section:impl ssl::basic_context::impl]
 
-[indexterm2 impl..ssl::basic_context] Get the underlying implementation in the native type.
+[indexterm2 impl..ssl::basic_context]
+Get the underlying implementation in the native type.
+
 
   impl_type impl();
 
@@ -55389,7 +60043,9 @@
 
 [section:impl_type ssl::basic_context::impl_type]
 
-[indexterm2 impl_type..ssl::basic_context] The native implementation type of the locking dispatcher.
+[indexterm2 impl_type..ssl::basic_context]
+The native implementation type of the locking dispatcher.
+
 
   typedef service_type::impl_type impl_type;
 
@@ -55407,7 +60063,9 @@
 
 [section:load_verify_file ssl::basic_context::load_verify_file]
 
-[indexterm2 load_verify_file..ssl::basic_context] Load a certification authority file for performing verification.
+[indexterm2 load_verify_file..ssl::basic_context]
+Load a certification authority file for performing verification.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.load_verify_file.overload1 load_verify_file]``(
       const std::string & filename);
@@ -55421,8 +60079,10 @@
 
 [section:overload1 ssl::basic_context::load_verify_file (1 of 2 overloads)]
 
+
 Load a certification authority file for performing verification.
 
+
   void load_verify_file(
       const std::string & filename);
 
@@ -55439,6 +60099,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -55450,14 +60111,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::load_verify_file (2 of 2 overloads)]
 
+
 Load a certification authority file for performing verification.
 
+
   boost::system::error_code load_verify_file(
       const std::string & filename,
       boost::system::error_code & ec);
@@ -55479,6 +60143,7 @@
 
 
 
+
 [endsect]
 
 
@@ -55490,7 +60155,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 method..ssl::basic_context] Different methods supported by a context.
+[indexterm2 method..ssl::basic_context]
+Different methods supported by a context.
+
 
   enum method
 
@@ -55583,7 +60250,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 no_sslv2..ssl::basic_context] Disable SSL v2.
+[indexterm2 no_sslv2..ssl::basic_context]
+Disable SSL v2.
+
 
   static const int no_sslv2 = implementation_defined;
 
@@ -55598,7 +60267,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 no_sslv3..ssl::basic_context] Disable SSL v3.
+[indexterm2 no_sslv3..ssl::basic_context]
+Disable SSL v3.
+
 
   static const int no_sslv3 = implementation_defined;
 
@@ -55613,7 +60284,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 no_tlsv1..ssl::basic_context] Disable TLS v1.
+[indexterm2 no_tlsv1..ssl::basic_context]
+Disable TLS v1.
+
 
   static const int no_tlsv1 = implementation_defined;
 
@@ -55628,7 +60301,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 options..ssl::basic_context] Bitmask type for SSL options.
+[indexterm2 options..ssl::basic_context]
+Bitmask type for SSL options.
+
 
   typedef int options;
 
@@ -55650,7 +60325,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 password_purpose..ssl::basic_context] Purpose of PEM password.
+[indexterm2 password_purpose..ssl::basic_context]
+Purpose of PEM password.
+
 
   enum password_purpose
 
@@ -55680,7 +60357,9 @@
 
 [section:service_type ssl::basic_context::service_type]
 
-[indexterm2 service_type..ssl::basic_context] The type of the service that will be used to provide context operations.
+[indexterm2 service_type..ssl::basic_context]
+The type of the service that will be used to provide context operations.
+
 
   typedef Service service_type;
 
@@ -55698,7 +60377,9 @@
 
 [section:set_options ssl::basic_context::set_options]
 
-[indexterm2 set_options..ssl::basic_context] Set options on the context.
+[indexterm2 set_options..ssl::basic_context]
+Set options on the context.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.set_options.overload1 set_options]``(
       options o);
@@ -55712,8 +60393,10 @@
 
 [section:overload1 ssl::basic_context::set_options (1 of 2 overloads)]
 
+
 Set options on the context.
 
+
   void set_options(
       options o);
 
@@ -55726,10 +60409,11 @@
 
 [variablelist
   
-[[o][A bitmask of options. The available option values are defined in the context\_base class. The options are bitwise-ored with any existing value for the options.]]
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -55741,14 +60425,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::set_options (2 of 2 overloads)]
 
+
 Set options on the context.
 
+
   boost::system::error_code set_options(
       options o,
       boost::system::error_code & ec);
@@ -55762,7 +60449,7 @@
 
 [variablelist
   
-[[o][A bitmask of options. The available option values are defined in the context\_base class. The options are bitwise-ored with any existing value for the options.]]
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
 
 [[ec][Set to indicate what error occurred, if any. ]]
 
@@ -55770,6 +60457,7 @@
 
 
 
+
 [endsect]
 
 
@@ -55777,7 +60465,9 @@
 
 [section:set_password_callback ssl::basic_context::set_password_callback]
 
-[indexterm2 set_password_callback..ssl::basic_context] Set the password callback.
+[indexterm2 set_password_callback..ssl::basic_context]
+Set the password callback.
+
 
   template<
       typename PasswordCallback>
@@ -55795,8 +60485,10 @@
 
 [section:overload1 ssl::basic_context::set_password_callback (1 of 2 overloads)]
 
+
 Set the password callback.
 
+
   template<
       typename PasswordCallback>
   void set_password_callback(
@@ -55822,6 +60514,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -55833,14 +60526,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::set_password_callback (2 of 2 overloads)]
 
+
 Set the password callback.
 
+
   template<
       typename PasswordCallback>
   boost::system::error_code set_password_callback(
@@ -55871,6 +60567,7 @@
 
 
 
+
 [endsect]
 
 
@@ -55878,7 +60575,9 @@
 
 [section:set_verify_mode ssl::basic_context::set_verify_mode]
 
-[indexterm2 set_verify_mode..ssl::basic_context] Set the peer verification mode.
+[indexterm2 set_verify_mode..ssl::basic_context]
+Set the peer verification mode.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.set_verify_mode.overload1 set_verify_mode]``(
       verify_mode v);
@@ -55892,8 +60591,10 @@
 
 [section:overload1 ssl::basic_context::set_verify_mode (1 of 2 overloads)]
 
+
 Set the peer verification mode.
 
+
   void set_verify_mode(
       verify_mode v);
 
@@ -55906,10 +60607,11 @@
 
 [variablelist
   
-[[v][A bitmask of peer verification modes. The available verify\_mode values are defined in the context\_base class.]]
+[[v][A bitmask of peer verification modes. The available verify\_mode values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -55921,14 +60623,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::set_verify_mode (2 of 2 overloads)]
 
+
 Set the peer verification mode.
 
+
   boost::system::error_code set_verify_mode(
       verify_mode v,
       boost::system::error_code & ec);
@@ -55942,7 +60647,7 @@
 
 [variablelist
   
-[[v][A bitmask of peer verification modes. The available verify\_mode values are defined in the context\_base class.]]
+[[v][A bitmask of peer verification modes. The available verify\_mode values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class.]]
 
 [[ec][Set to indicate what error occurred, if any. ]]
 
@@ -55950,6 +60655,7 @@
 
 
 
+
 [endsect]
 
 
@@ -55961,7 +60667,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 single_dh_use..ssl::basic_context] Always create a new key when using tmp_dh parameters.
+[indexterm2 single_dh_use..ssl::basic_context]
+Always create a new key when using tmp\_dh parameters.
+
 
   static const int single_dh_use = implementation_defined;
 
@@ -55972,7 +60680,9 @@
 
 [section:use_certificate_chain_file ssl::basic_context::use_certificate_chain_file]
 
-[indexterm2 use_certificate_chain_file..ssl::basic_context] Use a certificate chain from a file.
+[indexterm2 use_certificate_chain_file..ssl::basic_context]
+Use a certificate chain from a file.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.use_certificate_chain_file.overload1 use_certificate_chain_file]``(
       const std::string & filename);
@@ -55986,8 +60696,10 @@
 
 [section:overload1 ssl::basic_context::use_certificate_chain_file (1 of 2 overloads)]
 
+
 Use a certificate chain from a file.
 
+
   void use_certificate_chain_file(
       const std::string & filename);
 
@@ -56004,6 +60716,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -56015,14 +60728,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::use_certificate_chain_file (2 of 2 overloads)]
 
+
 Use a certificate chain from a file.
 
+
   boost::system::error_code use_certificate_chain_file(
       const std::string & filename,
       boost::system::error_code & ec);
@@ -56044,6 +60760,7 @@
 
 
 
+
 [endsect]
 
 
@@ -56051,7 +60768,9 @@
 
 [section:use_certificate_file ssl::basic_context::use_certificate_file]
 
-[indexterm2 use_certificate_file..ssl::basic_context] Use a certificate from a file.
+[indexterm2 use_certificate_file..ssl::basic_context]
+Use a certificate from a file.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.use_certificate_file.overload1 use_certificate_file]``(
       const std::string & filename,
@@ -56067,8 +60786,10 @@
 
 [section:overload1 ssl::basic_context::use_certificate_file (1 of 2 overloads)]
 
+
 Use a certificate from a file.
 
+
   void use_certificate_file(
       const std::string & filename,
       file_format format);
@@ -56088,6 +60809,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -56099,14 +60821,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::use_certificate_file (2 of 2 overloads)]
 
+
 Use a certificate from a file.
 
+
   boost::system::error_code use_certificate_file(
       const std::string & filename,
       file_format format,
@@ -56131,6 +60856,7 @@
 
 
 
+
 [endsect]
 
 
@@ -56138,7 +60864,9 @@
 
 [section:use_private_key_file ssl::basic_context::use_private_key_file]
 
-[indexterm2 use_private_key_file..ssl::basic_context] Use a private key from a file.
+[indexterm2 use_private_key_file..ssl::basic_context]
+Use a private key from a file.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.use_private_key_file.overload1 use_private_key_file]``(
       const std::string & filename,
@@ -56154,8 +60882,10 @@
 
 [section:overload1 ssl::basic_context::use_private_key_file (1 of 2 overloads)]
 
+
 Use a private key from a file.
 
+
   void use_private_key_file(
       const std::string & filename,
       file_format format);
@@ -56175,6 +60905,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -56186,14 +60917,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::use_private_key_file (2 of 2 overloads)]
 
+
 Use a private key from a file.
 
+
   boost::system::error_code use_private_key_file(
       const std::string & filename,
       file_format format,
@@ -56218,6 +60952,7 @@
 
 
 
+
 [endsect]
 
 
@@ -56225,7 +60960,9 @@
 
 [section:use_rsa_private_key_file ssl::basic_context::use_rsa_private_key_file]
 
-[indexterm2 use_rsa_private_key_file..ssl::basic_context] Use an RSA private key from a file.
+[indexterm2 use_rsa_private_key_file..ssl::basic_context]
+Use an RSA private key from a file.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file.overload1 use_rsa_private_key_file]``(
       const std::string & filename,
@@ -56241,8 +60978,10 @@
 
 [section:overload1 ssl::basic_context::use_rsa_private_key_file (1 of 2 overloads)]
 
+
 Use an RSA private key from a file.
 
+
   void use_rsa_private_key_file(
       const std::string & filename,
       file_format format);
@@ -56262,6 +61001,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -56273,14 +61013,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::use_rsa_private_key_file (2 of 2 overloads)]
 
+
 Use an RSA private key from a file.
 
+
   boost::system::error_code use_rsa_private_key_file(
       const std::string & filename,
       file_format format,
@@ -56305,6 +61048,7 @@
 
 
 
+
 [endsect]
 
 
@@ -56312,7 +61056,9 @@
 
 [section:use_tmp_dh_file ssl::basic_context::use_tmp_dh_file]
 
-[indexterm2 use_tmp_dh_file..ssl::basic_context] Use the specified file to obtain the temporary Diffie-Hellman parameters.
+[indexterm2 use_tmp_dh_file..ssl::basic_context]
+Use the specified file to obtain the temporary Diffie-Hellman parameters.
+
 
   void ``[link boost_asio.reference.ssl__basic_context.use_tmp_dh_file.overload1 use_tmp_dh_file]``(
       const std::string & filename);
@@ -56326,8 +61072,10 @@
 
 [section:overload1 ssl::basic_context::use_tmp_dh_file (1 of 2 overloads)]
 
+
 Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
+
   void use_tmp_dh_file(
       const std::string & filename);
 
@@ -56344,6 +61092,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -56355,14 +61104,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::basic_context::use_tmp_dh_file (2 of 2 overloads)]
 
+
 Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
+
   boost::system::error_code use_tmp_dh_file(
       const std::string & filename,
       boost::system::error_code & ec);
@@ -56384,6 +61136,7 @@
 
 
 
+
 [endsect]
 
 
@@ -56395,7 +61148,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 verify_client_once..ssl::basic_context] Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
+[indexterm2 verify_client_once..ssl::basic_context]
+Do not request client certificate on renegotiation. Ignored unless verify\_peer is set.
+
 
   static const int verify_client_once = implementation_defined;
 
@@ -56410,7 +61165,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 verify_fail_if_no_peer_cert..ssl::basic_context] Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
+[indexterm2 verify_fail_if_no_peer_cert..ssl::basic_context]
+Fail verification if the peer has no certificate. Ignored unless verify\_peer is set.
+
 
   static const int verify_fail_if_no_peer_cert = implementation_defined;
 
@@ -56425,7 +61182,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 verify_mode..ssl::basic_context] Bitmask type for peer verification.
+[indexterm2 verify_mode..ssl::basic_context]
+Bitmask type for peer verification.
+
 
   typedef int verify_mode;
 
@@ -56447,7 +61206,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 verify_none..ssl::basic_context] No verification.
+[indexterm2 verify_none..ssl::basic_context]
+No verification.
+
 
   static const int verify_none = implementation_defined;
 
@@ -56462,7 +61223,9 @@
 
 ['Inherited from ssl::context_base.]
 
-[indexterm2 verify_peer..ssl::basic_context] Verify the peer.
+[indexterm2 verify_peer..ssl::basic_context]
+Verify the peer.
+
 
   static const int verify_peer = implementation_defined;
 
@@ -56474,7 +61237,9 @@
 
 [section:_basic_context ssl::basic_context::~basic_context]
 
-[indexterm2 ~basic_context..ssl::basic_context] Destructor.
+[indexterm2 ~basic_context..ssl::basic_context]
+Destructor.
+
 
   ~basic_context();
 
@@ -56489,7 +61254,9 @@
 
 [section:ssl__context ssl::context]
 
-[indexterm1 ssl::context] Typedef for the typical usage of context.
+[indexterm1 ssl::context]
+Typedef for the typical usage of context.
+
 
   typedef basic_context< context_service > context;
 
@@ -56684,7 +61451,9 @@
 
 [section:ssl__context_base ssl::context_base]
 
-The context_base class is used as a base for the basic_context class template so that we have a common place to define various enums.
+
+The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is used as a base for the [link boost_asio.reference.ssl__basic_context `ssl::basic_context`] class template so that we have a common place to define various enums.
+
 
   class context_base
 
@@ -56801,7 +61570,9 @@
 
 [section:default_workarounds ssl::context_base::default_workarounds]
 
-[indexterm2 default_workarounds..ssl::context_base] Implement various bug workarounds.
+[indexterm2 default_workarounds..ssl::context_base]
+Implement various bug workarounds.
+
 
   static const int default_workarounds = implementation_defined;
 
@@ -56813,7 +61584,9 @@
 
 [section:file_format ssl::context_base::file_format]
 
-[indexterm2 file_format..ssl::context_base] File format types.
+[indexterm2 file_format..ssl::context_base]
+File format types.
+
 
   enum file_format
 
@@ -56843,7 +61616,9 @@
 
 [section:method ssl::context_base::method]
 
-[indexterm2 method..ssl::context_base] Different methods supported by a context.
+[indexterm2 method..ssl::context_base]
+Different methods supported by a context.
+
 
   enum method
 
@@ -56933,7 +61708,9 @@
 
 [section:no_sslv2 ssl::context_base::no_sslv2]
 
-[indexterm2 no_sslv2..ssl::context_base] Disable SSL v2.
+[indexterm2 no_sslv2..ssl::context_base]
+Disable SSL v2.
+
 
   static const int no_sslv2 = implementation_defined;
 
@@ -56945,7 +61722,9 @@
 
 [section:no_sslv3 ssl::context_base::no_sslv3]
 
-[indexterm2 no_sslv3..ssl::context_base] Disable SSL v3.
+[indexterm2 no_sslv3..ssl::context_base]
+Disable SSL v3.
+
 
   static const int no_sslv3 = implementation_defined;
 
@@ -56957,7 +61736,9 @@
 
 [section:no_tlsv1 ssl::context_base::no_tlsv1]
 
-[indexterm2 no_tlsv1..ssl::context_base] Disable TLS v1.
+[indexterm2 no_tlsv1..ssl::context_base]
+Disable TLS v1.
+
 
   static const int no_tlsv1 = implementation_defined;
 
@@ -56969,7 +61750,9 @@
 
 [section:options ssl::context_base::options]
 
-[indexterm2 options..ssl::context_base] Bitmask type for SSL options.
+[indexterm2 options..ssl::context_base]
+Bitmask type for SSL options.
+
 
   typedef int options;
 
@@ -56988,7 +61771,9 @@
 
 [section:password_purpose ssl::context_base::password_purpose]
 
-[indexterm2 password_purpose..ssl::context_base] Purpose of PEM password.
+[indexterm2 password_purpose..ssl::context_base]
+Purpose of PEM password.
+
 
   enum password_purpose
 
@@ -57018,7 +61803,9 @@
 
 [section:single_dh_use ssl::context_base::single_dh_use]
 
-[indexterm2 single_dh_use..ssl::context_base] Always create a new key when using tmp_dh parameters.
+[indexterm2 single_dh_use..ssl::context_base]
+Always create a new key when using tmp\_dh parameters.
+
 
   static const int single_dh_use = implementation_defined;
 
@@ -57030,7 +61817,9 @@
 
 [section:verify_client_once ssl::context_base::verify_client_once]
 
-[indexterm2 verify_client_once..ssl::context_base] Do not request client certificate on renegotiation. Ignored unless verify_peer is set.
+[indexterm2 verify_client_once..ssl::context_base]
+Do not request client certificate on renegotiation. Ignored unless verify\_peer is set.
+
 
   static const int verify_client_once = implementation_defined;
 
@@ -57042,7 +61831,9 @@
 
 [section:verify_fail_if_no_peer_cert ssl::context_base::verify_fail_if_no_peer_cert]
 
-[indexterm2 verify_fail_if_no_peer_cert..ssl::context_base] Fail verification if the peer has no certificate. Ignored unless verify_peer is set.
+[indexterm2 verify_fail_if_no_peer_cert..ssl::context_base]
+Fail verification if the peer has no certificate. Ignored unless verify\_peer is set.
+
 
   static const int verify_fail_if_no_peer_cert = implementation_defined;
 
@@ -57054,7 +61845,9 @@
 
 [section:verify_mode ssl::context_base::verify_mode]
 
-[indexterm2 verify_mode..ssl::context_base] Bitmask type for peer verification.
+[indexterm2 verify_mode..ssl::context_base]
+Bitmask type for peer verification.
+
 
   typedef int verify_mode;
 
@@ -57073,7 +61866,9 @@
 
 [section:verify_none ssl::context_base::verify_none]
 
-[indexterm2 verify_none..ssl::context_base] No verification.
+[indexterm2 verify_none..ssl::context_base]
+No verification.
+
 
   static const int verify_none = implementation_defined;
 
@@ -57085,7 +61880,9 @@
 
 [section:verify_peer ssl::context_base::verify_peer]
 
-[indexterm2 verify_peer..ssl::context_base] Verify the peer.
+[indexterm2 verify_peer..ssl::context_base]
+Verify the peer.
+
 
   static const int verify_peer = implementation_defined;
 
@@ -57097,7 +61894,9 @@
 
 [section:_context_base ssl::context_base::~context_base]
 
-[indexterm2 ~context_base..ssl::context_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~context_base..ssl::context_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~context_base();
 
@@ -57111,8 +61910,10 @@
 
 [section:ssl__context_service ssl::context_service]
 
+
 Default service implementation for a context.
 
+
   class context_service :
     public io_service::service
 
@@ -57241,7 +62042,9 @@
 
 [section:add_verify_path ssl::context_service::add_verify_path]
 
-[indexterm2 add_verify_path..ssl::context_service] Add a directory containing certification authority files to be used for performing verification.
+[indexterm2 add_verify_path..ssl::context_service]
+Add a directory containing certification authority files to be used for performing verification.
+
 
   boost::system::error_code add_verify_path(
       impl_type & impl,
@@ -57256,7 +62059,9 @@
 
 [section:context_service ssl::context_service::context_service]
 
-[indexterm2 context_service..ssl::context_service] Constructor.
+[indexterm2 context_service..ssl::context_service]
+Constructor.
+
 
   context_service(
       boost::asio::io_service & io_service);
@@ -57269,7 +62074,9 @@
 
 [section:create ssl::context_service::create]
 
-[indexterm2 create..ssl::context_service] Create a new context implementation.
+[indexterm2 create..ssl::context_service]
+Create a new context implementation.
+
 
   void create(
       impl_type & impl,
@@ -57283,7 +62090,9 @@
 
 [section:destroy ssl::context_service::destroy]
 
-[indexterm2 destroy..ssl::context_service] Destroy a context implementation.
+[indexterm2 destroy..ssl::context_service]
+Destroy a context implementation.
+
 
   void destroy(
       impl_type & impl);
@@ -57299,7 +62108,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..ssl::context_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..ssl::context_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -57311,7 +62122,9 @@
 
 [section:id ssl::context_service::id]
 
-[indexterm2 id..ssl::context_service] The unique service identifier.
+[indexterm2 id..ssl::context_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -57323,7 +62136,9 @@
 
 [section:impl_type ssl::context_service::impl_type]
 
-[indexterm2 impl_type..ssl::context_service] The type of the context.
+[indexterm2 impl_type..ssl::context_service]
+The type of the context.
+
 
   typedef implementation_defined impl_type;
 
@@ -57345,7 +62160,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..ssl::context_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..ssl::context_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -57357,7 +62174,9 @@
 
 [section:load_verify_file ssl::context_service::load_verify_file]
 
-[indexterm2 load_verify_file..ssl::context_service] Load a certification authority file for performing verification.
+[indexterm2 load_verify_file..ssl::context_service]
+Load a certification authority file for performing verification.
+
 
   boost::system::error_code load_verify_file(
       impl_type & impl,
@@ -57372,7 +62191,9 @@
 
 [section:null ssl::context_service::null]
 
-[indexterm2 null..ssl::context_service] Return a null context implementation.
+[indexterm2 null..ssl::context_service]
+Return a null context implementation.
+
 
   impl_type null() const;
 
@@ -57384,7 +62205,9 @@
 
 [section:set_options ssl::context_service::set_options]
 
-[indexterm2 set_options..ssl::context_service] Set options on the context.
+[indexterm2 set_options..ssl::context_service]
+Set options on the context.
+
 
   boost::system::error_code set_options(
       impl_type & impl,
@@ -57399,7 +62222,9 @@
 
 [section:set_password_callback ssl::context_service::set_password_callback]
 
-[indexterm2 set_password_callback..ssl::context_service] Set the password callback.
+[indexterm2 set_password_callback..ssl::context_service]
+Set the password callback.
+
 
   template<
       typename PasswordCallback>
@@ -57416,7 +62241,9 @@
 
 [section:set_verify_mode ssl::context_service::set_verify_mode]
 
-[indexterm2 set_verify_mode..ssl::context_service] Set peer verification mode.
+[indexterm2 set_verify_mode..ssl::context_service]
+Set peer verification mode.
+
 
   boost::system::error_code set_verify_mode(
       impl_type & impl,
@@ -57431,7 +62258,9 @@
 
 [section:shutdown_service ssl::context_service::shutdown_service]
 
-[indexterm2 shutdown_service..ssl::context_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..ssl::context_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -57443,7 +62272,9 @@
 
 [section:use_certificate_chain_file ssl::context_service::use_certificate_chain_file]
 
-[indexterm2 use_certificate_chain_file..ssl::context_service] Use a certificate chain from a file.
+[indexterm2 use_certificate_chain_file..ssl::context_service]
+Use a certificate chain from a file.
+
 
   boost::system::error_code use_certificate_chain_file(
       impl_type & impl,
@@ -57458,7 +62289,9 @@
 
 [section:use_certificate_file ssl::context_service::use_certificate_file]
 
-[indexterm2 use_certificate_file..ssl::context_service] Use a certificate from a file.
+[indexterm2 use_certificate_file..ssl::context_service]
+Use a certificate from a file.
+
 
   boost::system::error_code use_certificate_file(
       impl_type & impl,
@@ -57474,7 +62307,9 @@
 
 [section:use_private_key_file ssl::context_service::use_private_key_file]
 
-[indexterm2 use_private_key_file..ssl::context_service] Use a private key from a file.
+[indexterm2 use_private_key_file..ssl::context_service]
+Use a private key from a file.
+
 
   boost::system::error_code use_private_key_file(
       impl_type & impl,
@@ -57490,7 +62325,9 @@
 
 [section:use_rsa_private_key_file ssl::context_service::use_rsa_private_key_file]
 
-[indexterm2 use_rsa_private_key_file..ssl::context_service] Use an RSA private key from a file.
+[indexterm2 use_rsa_private_key_file..ssl::context_service]
+Use an RSA private key from a file.
+
 
   boost::system::error_code use_rsa_private_key_file(
       impl_type & impl,
@@ -57506,7 +62343,9 @@
 
 [section:use_tmp_dh_file ssl::context_service::use_tmp_dh_file]
 
-[indexterm2 use_tmp_dh_file..ssl::context_service] Use the specified file to obtain the temporary Diffie-Hellman parameters.
+[indexterm2 use_tmp_dh_file..ssl::context_service]
+Use the specified file to obtain the temporary Diffie-Hellman parameters.
+
 
   boost::system::error_code use_tmp_dh_file(
       impl_type & impl,
@@ -57523,8 +62362,10 @@
 
 [section:ssl__stream ssl::stream]
 
+
 Provides stream-oriented functionality using SSL.
 
+
   template<
       typename Stream,
       typename ``[link boost_asio.reference.Service Service]`` = stream_service>
@@ -57671,13 +62512,14 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 [heading Example]
   
-To use the SSL stream template with an ip::tcp::socket, you would write:
+To use the SSL stream template with an `ip::tcp::socket`, you would write:
 
    boost::asio::io_service io_service;
    boost::asio::ssl::context context(io_service, boost::asio::ssl::context::sslv23);
@@ -57687,6 +62529,8 @@
 
 
 
+
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/ssl/stream.hpp]
@@ -57696,7 +62540,9 @@
 
 [section:async_handshake ssl::stream::async_handshake]
 
-[indexterm2 async_handshake..ssl::stream] Start an asynchronous SSL handshake.
+[indexterm2 async_handshake..ssl::stream]
+Start an asynchronous SSL handshake.
+
 
   template<
       typename HandshakeHandler>
@@ -57727,13 +62573,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:async_read_some ssl::stream::async_read_some]
 
-[indexterm2 async_read_some..ssl::stream] Start an asynchronous read.
+[indexterm2 async_read_some..ssl::stream]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -57764,10 +62613,11 @@
 
 ]
 
+
 [heading Remarks]
       
-The async\_read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The async\_read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 
 
@@ -57777,7 +62627,9 @@
 
 [section:async_shutdown ssl::stream::async_shutdown]
 
-[indexterm2 async_shutdown..ssl::stream] Asynchronously shut down SSL on the stream.
+[indexterm2 async_shutdown..ssl::stream]
+Asynchronously shut down SSL on the stream.
+
 
   template<
       typename ShutdownHandler>
@@ -57805,13 +62657,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:async_write_some ssl::stream::async_write_some]
 
-[indexterm2 async_write_some..ssl::stream] Start an asynchronous write.
+[indexterm2 async_write_some..ssl::stream]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -57842,10 +62697,11 @@
 
 ]
 
+
 [heading Remarks]
       
-The async\_write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the blocking operation completes.
+The async\_write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -57855,17 +62711,20 @@
 
 [section:get_io_service ssl::stream::get_io_service]
 
-[indexterm2 get_io_service..ssl::stream] Get the io_service associated with the object.
+[indexterm2 get_io_service..ssl::stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the stream uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the stream uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -57874,7 +62733,9 @@
 
 [section:handshake ssl::stream::handshake]
 
-[indexterm2 handshake..ssl::stream] Perform SSL handshaking.
+[indexterm2 handshake..ssl::stream]
+Perform SSL handshaking.
+
 
   void ``[link boost_asio.reference.ssl__stream.handshake.overload1 handshake]``(
       handshake_type type);
@@ -57888,8 +62749,10 @@
 
 [section:overload1 ssl::stream::handshake (1 of 2 overloads)]
 
+
 Perform SSL handshaking.
 
+
   void handshake(
       handshake_type type);
 
@@ -57906,6 +62769,7 @@
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -57917,14 +62781,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::stream::handshake (2 of 2 overloads)]
 
+
 Perform SSL handshaking.
 
+
   boost::system::error_code handshake(
       handshake_type type,
       boost::system::error_code & ec);
@@ -57946,6 +62813,7 @@
 
 
 
+
 [endsect]
 
 
@@ -57954,7 +62822,9 @@
 
 [section:handshake_type ssl::stream::handshake_type]
 
-[indexterm2 handshake_type..ssl::stream] Different handshake types.
+[indexterm2 handshake_type..ssl::stream]
+Different handshake types.
+
 
   enum handshake_type
 
@@ -57984,7 +62854,9 @@
 
 [section:impl ssl::stream::impl]
 
-[indexterm2 impl..ssl::stream] Get the underlying implementation in the native type.
+[indexterm2 impl..ssl::stream]
+Get the underlying implementation in the native type.
+
 
   impl_type impl();
 
@@ -57998,7 +62870,9 @@
 
 [section:impl_type ssl::stream::impl_type]
 
-[indexterm2 impl_type..ssl::stream] The native implementation type of the stream.
+[indexterm2 impl_type..ssl::stream]
+The native implementation type of the stream.
+
 
   typedef service_type::impl_type impl_type;
 
@@ -58016,7 +62890,9 @@
 
 [section:in_avail ssl::stream::in_avail]
 
-[indexterm2 in_avail..ssl::stream] Determine the amount of data that may be read without blocking.
+[indexterm2 in_avail..ssl::stream]
+Determine the amount of data that may be read without blocking.
+
 
   std::size_t ``[link boost_asio.reference.ssl__stream.in_avail.overload1 in_avail]``();
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.in_avail.overload1 more...]]``
@@ -58028,8 +62904,10 @@
 
 [section:overload1 ssl::stream::in_avail (1 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail();
 
 
@@ -58040,6 +62918,7 @@
       
 The number of bytes of data that can be read without blocking.
 
+
 [heading Exceptions]
     
 
@@ -58051,14 +62930,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::stream::in_avail (2 of 2 overloads)]
 
+
 Determine the amount of data that may be read without blocking.
 
+
   std::size_t in_avail(
       boost::system::error_code & ec);
 
@@ -58075,12 +62957,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes of data that can be read without blocking.
 
 
 
+
 [endsect]
 
 
@@ -58089,17 +62973,20 @@
 
 [section:io_service ssl::stream::io_service]
 
-[indexterm2 io_service..ssl::stream] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..ssl::stream]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the stream uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the stream uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -58108,21 +62995,27 @@
 
 [section:lowest_layer ssl::stream::lowest_layer]
 
-[indexterm2 lowest_layer..ssl::stream] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..ssl::stream]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 ssl::stream::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
@@ -58135,14 +63028,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::stream::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
@@ -58155,6 +63051,7 @@
 
 
 
+
 [endsect]
 
 
@@ -58163,7 +63060,9 @@
 
 [section:lowest_layer_type ssl::stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..ssl::stream] The type of the lowest layer.
+[indexterm2 lowest_layer_type..ssl::stream]
+The type of the lowest layer.
+
 
   typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
@@ -58182,7 +63081,9 @@
 
 [section:next_layer ssl::stream::next_layer]
 
-[indexterm2 next_layer..ssl::stream] Get a reference to the next layer.
+[indexterm2 next_layer..ssl::stream]
+Get a reference to the next layer.
+
 
   next_layer_type & next_layer();
 
@@ -58196,13 +63097,16 @@
 
 
 
+
 [endsect]
 
 
 
 [section:next_layer_type ssl::stream::next_layer_type]
 
-[indexterm2 next_layer_type..ssl::stream] The type of the next layer.
+[indexterm2 next_layer_type..ssl::stream]
+The type of the next layer.
+
 
   typedef boost::remove_reference< Stream >::type next_layer_type;
 
@@ -58220,7 +63124,9 @@
 
 [section:peek ssl::stream::peek]
 
-[indexterm2 peek..ssl::stream] Peek at the incoming data on the stream.
+[indexterm2 peek..ssl::stream]
+Peek at the incoming data on the stream.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -58238,8 +63144,10 @@
 
 [section:overload1 ssl::stream::peek (1 of 2 overloads)]
 
+
 Peek at the incoming data on the stream.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -58258,10 +63166,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
@@ -58273,14 +63183,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::stream::peek (2 of 2 overloads)]
 
+
 Peek at the incoming data on the stream.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t peek(
@@ -58302,12 +63215,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
 
 
+
 [endsect]
 
 
@@ -58315,7 +63230,9 @@
 
 [section:read_some ssl::stream::read_some]
 
-[indexterm2 read_some..ssl::stream] Read some data from the stream.
+[indexterm2 read_some..ssl::stream]
+Read some data from the stream.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -58333,8 +63250,10 @@
 
 [section:overload1 ssl::stream::read_some (1 of 2 overloads)]
 
+
 Read some data from the stream.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -58353,10 +63272,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
@@ -58366,10 +63287,11 @@
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -58379,8 +63301,10 @@
 
 [section:overload2 ssl::stream::read_some (2 of 2 overloads)]
 
+
 Read some data from the stream.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -58402,14 +63326,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -58421,7 +63347,9 @@
 
 [section:service_type ssl::stream::service_type]
 
-[indexterm2 service_type..ssl::stream] The type of the service that will be used to provide stream operations.
+[indexterm2 service_type..ssl::stream]
+The type of the service that will be used to provide stream operations.
+
 
   typedef Service service_type;
 
@@ -58439,7 +63367,9 @@
 
 [section:shutdown ssl::stream::shutdown]
 
-[indexterm2 shutdown..ssl::stream] Shut down SSL on the stream.
+[indexterm2 shutdown..ssl::stream]
+Shut down SSL on the stream.
+
 
   void ``[link boost_asio.reference.ssl__stream.shutdown.overload1 shutdown]``();
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.shutdown.overload1 more...]]``
@@ -58451,8 +63381,10 @@
 
 [section:overload1 ssl::stream::shutdown (1 of 2 overloads)]
 
+
 Shut down SSL on the stream.
 
+
   void shutdown();
 
 
@@ -58470,14 +63402,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 ssl::stream::shutdown (2 of 2 overloads)]
 
+
 Shut down SSL on the stream.
 
+
   boost::system::error_code shutdown(
       boost::system::error_code & ec);
 
@@ -58496,6 +63431,7 @@
 
 
 
+
 [endsect]
 
 
@@ -58504,7 +63440,9 @@
 
 [section:stream ssl::stream::stream]
 
-[indexterm2 stream..ssl::stream] Construct a stream.
+[indexterm2 stream..ssl::stream]
+Construct a stream.
+
 
   template<
       typename Arg,
@@ -58530,12 +63468,15 @@
 
 
 
+
 [endsect]
 
 
 [section:write_some ssl::stream::write_some]
 
-[indexterm2 write_some..ssl::stream] Write some data to the stream.
+[indexterm2 write_some..ssl::stream]
+Write some data to the stream.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -58553,8 +63494,10 @@
 
 [section:overload1 ssl::stream::write_some (1 of 2 overloads)]
 
+
 Write some data to the stream.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -58573,10 +63516,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
@@ -58586,10 +63531,11 @@
 
 ]
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -58599,8 +63545,10 @@
 
 [section:overload2 ssl::stream::write_some (2 of 2 overloads)]
 
+
 Write some data to the stream.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -58622,14 +63570,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -58641,7 +63591,9 @@
 
 [section:_stream ssl::stream::~stream]
 
-[indexterm2 ~stream..ssl::stream] Destructor.
+[indexterm2 ~stream..ssl::stream]
+Destructor.
+
 
   ~stream();
 
@@ -58655,7 +63607,9 @@
 
 [section:ssl__stream_base ssl::stream_base]
 
-The stream_base class is used as a base for the boost::asio::ssl::stream class template so that we have a common place to define various enums.
+
+The [link boost_asio.reference.ssl__stream_base `ssl::stream_base`] class is used as a base for the [link boost_asio.reference.ssl__stream `ssl::stream`] class template so that we have a common place to define various enums.
+
 
   class stream_base
 
@@ -58693,7 +63647,9 @@
 
 [section:handshake_type ssl::stream_base::handshake_type]
 
-[indexterm2 handshake_type..ssl::stream_base] Different handshake types.
+[indexterm2 handshake_type..ssl::stream_base]
+Different handshake types.
+
 
   enum handshake_type
 
@@ -58723,7 +63679,9 @@
 
 [section:_stream_base ssl::stream_base::~stream_base]
 
-[indexterm2 ~stream_base..ssl::stream_base] Protected destructor to prevent deletion through this type.
+[indexterm2 ~stream_base..ssl::stream_base]
+Protected destructor to prevent deletion through this type.
+
 
   ~stream_base();
 
@@ -58737,8 +63695,10 @@
 
 [section:ssl__stream_service ssl::stream_service]
 
+
 Default service implementation for an SSL stream.
 
+
   class stream_service :
     public io_service::service
 
@@ -58867,7 +63827,9 @@
 
 [section:async_handshake ssl::stream_service::async_handshake]
 
-[indexterm2 async_handshake..ssl::stream_service] Start an asynchronous SSL handshake.
+[indexterm2 async_handshake..ssl::stream_service]
+Start an asynchronous SSL handshake.
+
 
   template<
       typename Stream,
@@ -58886,7 +63848,9 @@
 
 [section:async_read_some ssl::stream_service::async_read_some]
 
-[indexterm2 async_read_some..ssl::stream_service] Start an asynchronous read.
+[indexterm2 async_read_some..ssl::stream_service]
+Start an asynchronous read.
+
 
   template<
       typename Stream,
@@ -58906,7 +63870,9 @@
 
 [section:async_shutdown ssl::stream_service::async_shutdown]
 
-[indexterm2 async_shutdown..ssl::stream_service] Asynchronously shut down SSL on the stream.
+[indexterm2 async_shutdown..ssl::stream_service]
+Asynchronously shut down SSL on the stream.
+
 
   template<
       typename Stream,
@@ -58924,7 +63890,9 @@
 
 [section:async_write_some ssl::stream_service::async_write_some]
 
-[indexterm2 async_write_some..ssl::stream_service] Start an asynchronous write.
+[indexterm2 async_write_some..ssl::stream_service]
+Start an asynchronous write.
+
 
   template<
       typename Stream,
@@ -58944,7 +63912,9 @@
 
 [section:create ssl::stream_service::create]
 
-[indexterm2 create..ssl::stream_service] Create a new stream implementation.
+[indexterm2 create..ssl::stream_service]
+Create a new stream implementation.
+
 
   template<
       typename Stream,
@@ -58962,7 +63932,9 @@
 
 [section:destroy ssl::stream_service::destroy]
 
-[indexterm2 destroy..ssl::stream_service] Destroy a stream implementation.
+[indexterm2 destroy..ssl::stream_service]
+Destroy a stream implementation.
+
 
   template<
       typename Stream>
@@ -58981,7 +63953,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..ssl::stream_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..ssl::stream_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -58993,7 +63967,9 @@
 
 [section:handshake ssl::stream_service::handshake]
 
-[indexterm2 handshake..ssl::stream_service] Perform SSL handshaking.
+[indexterm2 handshake..ssl::stream_service]
+Perform SSL handshaking.
+
 
   template<
       typename Stream>
@@ -59011,7 +63987,9 @@
 
 [section:id ssl::stream_service::id]
 
-[indexterm2 id..ssl::stream_service] The unique service identifier.
+[indexterm2 id..ssl::stream_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -59023,7 +64001,9 @@
 
 [section:impl_type ssl::stream_service::impl_type]
 
-[indexterm2 impl_type..ssl::stream_service] The type of a stream implementation.
+[indexterm2 impl_type..ssl::stream_service]
+The type of a stream implementation.
+
 
   typedef implementation_defined impl_type;
 
@@ -59042,7 +64022,9 @@
 
 [section:in_avail ssl::stream_service::in_avail]
 
-[indexterm2 in_avail..ssl::stream_service] Determine the amount of data that may be read without blocking.
+[indexterm2 in_avail..ssl::stream_service]
+Determine the amount of data that may be read without blocking.
+
 
   template<
       typename Stream>
@@ -59062,7 +64044,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..ssl::stream_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..ssl::stream_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -59074,7 +64058,9 @@
 
 [section:null ssl::stream_service::null]
 
-[indexterm2 null..ssl::stream_service] Return a null stream implementation.
+[indexterm2 null..ssl::stream_service]
+Return a null stream implementation.
+
 
   impl_type null() const;
 
@@ -59086,7 +64072,9 @@
 
 [section:peek ssl::stream_service::peek]
 
-[indexterm2 peek..ssl::stream_service] Peek at the incoming data on the stream.
+[indexterm2 peek..ssl::stream_service]
+Peek at the incoming data on the stream.
+
 
   template<
       typename Stream,
@@ -59105,7 +64093,9 @@
 
 [section:read_some ssl::stream_service::read_some]
 
-[indexterm2 read_some..ssl::stream_service] Read some data from the stream.
+[indexterm2 read_some..ssl::stream_service]
+Read some data from the stream.
+
 
   template<
       typename Stream,
@@ -59124,7 +64114,9 @@
 
 [section:shutdown ssl::stream_service::shutdown]
 
-[indexterm2 shutdown..ssl::stream_service] Shut down SSL on the stream.
+[indexterm2 shutdown..ssl::stream_service]
+Shut down SSL on the stream.
+
 
   template<
       typename Stream>
@@ -59141,7 +64133,9 @@
 
 [section:shutdown_service ssl::stream_service::shutdown_service]
 
-[indexterm2 shutdown_service..ssl::stream_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..ssl::stream_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -59153,7 +64147,9 @@
 
 [section:stream_service ssl::stream_service::stream_service]
 
-[indexterm2 stream_service..ssl::stream_service] Construct a new stream service for the specified io_service.
+[indexterm2 stream_service..ssl::stream_service]
+Construct a new stream service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   stream_service(
       boost::asio::io_service & io_service);
@@ -59166,7 +64162,9 @@
 
 [section:write_some ssl::stream_service::write_some]
 
-[indexterm2 write_some..ssl::stream_service] Write some data to the stream.
+[indexterm2 write_some..ssl::stream_service]
+Write some data to the stream.
+
 
   template<
       typename Stream,
@@ -59188,7 +64186,9 @@
 
 [section:strand strand]
 
-[indexterm1 strand] Typedef for backwards compatibility.
+[indexterm1 strand]
+Typedef for backwards compatibility.
+
 
   typedef boost::asio::io_service::strand strand;
 
@@ -59234,14 +64234,16 @@
   
 ]
 
-The io_service::strand class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
+The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
 
-[*Shared] [*objects:] Safe.
 
 
 
@@ -59257,8 +64259,10 @@
 
 [section:stream_socket_service stream_socket_service]
 
+
 Default service implementation for a stream socket.
 
+
   template<
       typename ``[link boost_asio.reference.Protocol Protocol]``>
   class stream_socket_service :
@@ -59460,7 +64464,9 @@
 
 [section:assign stream_socket_service::assign]
 
-[indexterm2 assign..stream_socket_service] Assign an existing native socket to a stream socket.
+[indexterm2 assign..stream_socket_service]
+Assign an existing native socket to a stream socket.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -59476,7 +64482,9 @@
 
 [section:async_connect stream_socket_service::async_connect]
 
-[indexterm2 async_connect..stream_socket_service] Start an asynchronous connect.
+[indexterm2 async_connect..stream_socket_service]
+Start an asynchronous connect.
+
 
   template<
       typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
@@ -59493,7 +64501,9 @@
 
 [section:async_receive stream_socket_service::async_receive]
 
-[indexterm2 async_receive..stream_socket_service] Start an asynchronous receive.
+[indexterm2 async_receive..stream_socket_service]
+Start an asynchronous receive.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -59512,7 +64522,9 @@
 
 [section:async_send stream_socket_service::async_send]
 
-[indexterm2 async_send..stream_socket_service] Start an asynchronous send.
+[indexterm2 async_send..stream_socket_service]
+Start an asynchronous send.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -59531,7 +64543,9 @@
 
 [section:at_mark stream_socket_service::at_mark]
 
-[indexterm2 at_mark..stream_socket_service] Determine whether the socket is at the out-of-band data mark.
+[indexterm2 at_mark..stream_socket_service]
+Determine whether the socket is at the out-of-band data mark.
+
 
   bool at_mark(
       const implementation_type & impl,
@@ -59545,7 +64559,9 @@
 
 [section:available stream_socket_service::available]
 
-[indexterm2 available..stream_socket_service] Determine the number of bytes available for reading.
+[indexterm2 available..stream_socket_service]
+Determine the number of bytes available for reading.
+
 
   std::size_t available(
       const implementation_type & impl,
@@ -59559,7 +64575,9 @@
 
 [section:bind stream_socket_service::bind]
 
-[indexterm2 bind..stream_socket_service] Bind the stream socket to the specified local endpoint.
+[indexterm2 bind..stream_socket_service]
+Bind the stream socket to the specified local endpoint.
+
 
   boost::system::error_code bind(
       implementation_type & impl,
@@ -59574,7 +64592,9 @@
 
 [section:cancel stream_socket_service::cancel]
 
-[indexterm2 cancel..stream_socket_service] Cancel all asynchronous operations associated with the socket.
+[indexterm2 cancel..stream_socket_service]
+Cancel all asynchronous operations associated with the socket.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -59588,7 +64608,9 @@
 
 [section:close stream_socket_service::close]
 
-[indexterm2 close..stream_socket_service] Close a stream socket implementation.
+[indexterm2 close..stream_socket_service]
+Close a stream socket implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -59602,7 +64624,9 @@
 
 [section:connect stream_socket_service::connect]
 
-[indexterm2 connect..stream_socket_service] Connect the stream socket to the specified endpoint.
+[indexterm2 connect..stream_socket_service]
+Connect the stream socket to the specified endpoint.
+
 
   boost::system::error_code connect(
       implementation_type & impl,
@@ -59617,7 +64641,9 @@
 
 [section:construct stream_socket_service::construct]
 
-[indexterm2 construct..stream_socket_service] Construct a new stream socket implementation.
+[indexterm2 construct..stream_socket_service]
+Construct a new stream socket implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -59630,7 +64656,9 @@
 
 [section:destroy stream_socket_service::destroy]
 
-[indexterm2 destroy..stream_socket_service] Destroy a stream socket implementation.
+[indexterm2 destroy..stream_socket_service]
+Destroy a stream socket implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -59643,7 +64671,9 @@
 
 [section:endpoint_type stream_socket_service::endpoint_type]
 
-[indexterm2 endpoint_type..stream_socket_service] The endpoint type.
+[indexterm2 endpoint_type..stream_socket_service]
+The endpoint type.
+
 
   typedef Protocol::endpoint endpoint_type;
 
@@ -59665,7 +64695,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..stream_socket_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..stream_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -59677,7 +64709,9 @@
 
 [section:get_option stream_socket_service::get_option]
 
-[indexterm2 get_option..stream_socket_service] Get a socket option.
+[indexterm2 get_option..stream_socket_service]
+Get a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
@@ -59694,7 +64728,9 @@
 
 [section:id stream_socket_service::id]
 
-[indexterm2 id..stream_socket_service] The unique service identifier.
+[indexterm2 id..stream_socket_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -59706,7 +64742,9 @@
 
 [section:implementation_type stream_socket_service::implementation_type]
 
-[indexterm2 implementation_type..stream_socket_service] The type of a stream socket implementation.
+[indexterm2 implementation_type..stream_socket_service]
+The type of a stream socket implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -59725,7 +64763,9 @@
 
 [section:io_control stream_socket_service::io_control]
 
-[indexterm2 io_control..stream_socket_service] Perform an IO control command on the socket.
+[indexterm2 io_control..stream_socket_service]
+Perform an IO control command on the socket.
+
 
   template<
       typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
@@ -59745,7 +64785,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..stream_socket_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..stream_socket_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -59757,7 +64799,9 @@
 
 [section:is_open stream_socket_service::is_open]
 
-[indexterm2 is_open..stream_socket_service] Determine whether the socket is open.
+[indexterm2 is_open..stream_socket_service]
+Determine whether the socket is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -59770,7 +64814,9 @@
 
 [section:local_endpoint stream_socket_service::local_endpoint]
 
-[indexterm2 local_endpoint..stream_socket_service] Get the local endpoint.
+[indexterm2 local_endpoint..stream_socket_service]
+Get the local endpoint.
+
 
   endpoint_type local_endpoint(
       const implementation_type & impl,
@@ -59784,7 +64830,9 @@
 
 [section:native stream_socket_service::native]
 
-[indexterm2 native..stream_socket_service] Get the native socket implementation.
+[indexterm2 native..stream_socket_service]
+Get the native socket implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -59797,7 +64845,9 @@
 
 [section:native_type stream_socket_service::native_type]
 
-[indexterm2 native_type..stream_socket_service] The native socket type.
+[indexterm2 native_type..stream_socket_service]
+The native socket type.
+
 
   typedef implementation_defined native_type;
 
@@ -59816,7 +64866,9 @@
 
 [section:open stream_socket_service::open]
 
-[indexterm2 open..stream_socket_service] Open a stream socket.
+[indexterm2 open..stream_socket_service]
+Open a stream socket.
+
 
   boost::system::error_code open(
       implementation_type & impl,
@@ -59831,7 +64883,9 @@
 
 [section:protocol_type stream_socket_service::protocol_type]
 
-[indexterm2 protocol_type..stream_socket_service] The protocol type.
+[indexterm2 protocol_type..stream_socket_service]
+The protocol type.
+
 
   typedef Protocol protocol_type;
 
@@ -59850,7 +64904,9 @@
 
 [section:receive stream_socket_service::receive]
 
-[indexterm2 receive..stream_socket_service] Receive some data from the peer.
+[indexterm2 receive..stream_socket_service]
+Receive some data from the peer.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -59868,7 +64924,9 @@
 
 [section:remote_endpoint stream_socket_service::remote_endpoint]
 
-[indexterm2 remote_endpoint..stream_socket_service] Get the remote endpoint.
+[indexterm2 remote_endpoint..stream_socket_service]
+Get the remote endpoint.
+
 
   endpoint_type remote_endpoint(
       const implementation_type & impl,
@@ -59882,7 +64940,9 @@
 
 [section:send stream_socket_service::send]
 
-[indexterm2 send..stream_socket_service] Send the given data to the peer.
+[indexterm2 send..stream_socket_service]
+Send the given data to the peer.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -59900,7 +64960,9 @@
 
 [section:set_option stream_socket_service::set_option]
 
-[indexterm2 set_option..stream_socket_service] Set a socket option.
+[indexterm2 set_option..stream_socket_service]
+Set a socket option.
+
 
   template<
       typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
@@ -59917,7 +64979,9 @@
 
 [section:shutdown stream_socket_service::shutdown]
 
-[indexterm2 shutdown..stream_socket_service] Disable sends or receives on the socket.
+[indexterm2 shutdown..stream_socket_service]
+Disable sends or receives on the socket.
+
 
   boost::system::error_code shutdown(
       implementation_type & impl,
@@ -59932,7 +64996,9 @@
 
 [section:shutdown_service stream_socket_service::shutdown_service]
 
-[indexterm2 shutdown_service..stream_socket_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..stream_socket_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -59944,7 +65010,9 @@
 
 [section:stream_socket_service stream_socket_service::stream_socket_service]
 
-[indexterm2 stream_socket_service..stream_socket_service] Construct a new stream socket service for the specified io_service.
+[indexterm2 stream_socket_service..stream_socket_service]
+Construct a new stream socket service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   stream_socket_service(
       boost::asio::io_service & io_service);
@@ -59960,7 +65028,9 @@
 
 [section:streambuf streambuf]
 
-[indexterm1 streambuf] Typedef for the typical usage of basic_streambuf.
+[indexterm1 streambuf]
+Typedef for the typical usage of [link boost_asio.reference.basic_streambuf `basic_streambuf`].
+
 
   typedef basic_streambuf streambuf;
 
@@ -60054,11 +65124,13 @@
 
 * A single contiguous character array, which is reallocated as necessary to accommodate changes in the size of the character sequence. This is the implementation approach currently used in Asio.
 
+
 * A sequence of one or more character arrays, where each array is of the same size. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
+
 * A sequence of one or more character arrays of varying sizes. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
-The constructor for basic_streambuf accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
+The constructor for [link boost_asio.reference.basic_streambuf `basic_streambuf`] accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
 
    size() <= max_size()
 
@@ -60116,7 +65188,9 @@
 
 [section:time_traits_lt__ptime__gt_ time_traits< boost::posix_time::ptime >]
 
-Time traits specialised for posix_time.
+
+Time traits specialised for posix\_time.
+
 
   template<>
   struct time_traits< boost::posix_time::ptime >
@@ -60182,7 +65256,9 @@
 
 [section:add time_traits< boost::posix_time::ptime >::add]
 
-[indexterm2 add..time_traits< boost::posix_time::ptime >] Add a duration to a time.
+[indexterm2 add..time_traits< boost::posix_time::ptime >]
+Add a duration to a time.
+
 
   static time_type add(
       const time_type & t,
@@ -60196,7 +65272,9 @@
 
 [section:duration_type time_traits< boost::posix_time::ptime >::duration_type]
 
-[indexterm2 duration_type..time_traits< boost::posix_time::ptime >] The duration type.
+[indexterm2 duration_type..time_traits< boost::posix_time::ptime >]
+The duration type.
+
 
   typedef boost::posix_time::time_duration duration_type;
 
@@ -60215,7 +65293,9 @@
 
 [section:less_than time_traits< boost::posix_time::ptime >::less_than]
 
-[indexterm2 less_than..time_traits< boost::posix_time::ptime >] Test whether one time is less than another.
+[indexterm2 less_than..time_traits< boost::posix_time::ptime >]
+Test whether one time is less than another.
+
 
   static bool less_than(
       const time_type & t1,
@@ -60229,7 +65309,9 @@
 
 [section:now time_traits< boost::posix_time::ptime >::now]
 
-[indexterm2 now..time_traits< boost::posix_time::ptime >] Get the current time.
+[indexterm2 now..time_traits< boost::posix_time::ptime >]
+Get the current time.
+
 
   static time_type now();
 
@@ -60241,7 +65323,9 @@
 
 [section:subtract time_traits< boost::posix_time::ptime >::subtract]
 
-[indexterm2 subtract..time_traits< boost::posix_time::ptime >] Subtract one time from another.
+[indexterm2 subtract..time_traits< boost::posix_time::ptime >]
+Subtract one time from another.
+
 
   static duration_type subtract(
       const time_type & t1,
@@ -60255,7 +65339,9 @@
 
 [section:time_type time_traits< boost::posix_time::ptime >::time_type]
 
-[indexterm2 time_type..time_traits< boost::posix_time::ptime >] The time type.
+[indexterm2 time_type..time_traits< boost::posix_time::ptime >]
+The time type.
+
 
   typedef boost::posix_time::ptime time_type;
 
@@ -60274,7 +65360,9 @@
 
 [section:to_posix_duration time_traits< boost::posix_time::ptime >::to_posix_duration]
 
-[indexterm2 to_posix_duration..time_traits< boost::posix_time::ptime >] Convert to POSIX duration type.
+[indexterm2 to_posix_duration..time_traits< boost::posix_time::ptime >]
+Convert to POSIX duration type.
+
 
   static boost::posix_time::time_duration to_posix_duration(
       const duration_type & d);
@@ -60290,7 +65378,9 @@
 
 [section:transfer_all transfer_all]
 
-[indexterm1 transfer_all] Return a completion condition function object that indicates that a read or write operation should continue until all of the data has been transferred, or until an error occurs.
+[indexterm1 transfer_all]
+Return a completion condition function object that indicates that a read or write operation should continue until all of the data has been transferred, or until an error occurs.
+
 
   unspecified transfer_all();
 
@@ -60320,6 +65410,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/completion_condition.hpp]
@@ -60333,7 +65424,9 @@
 
 [section:transfer_at_least transfer_at_least]
 
-[indexterm1 transfer_at_least] Return a completion condition function object that indicates that a read or write operation should continue until a minimum number of bytes has been transferred, or until an error occurs.
+[indexterm1 transfer_at_least]
+Return a completion condition function object that indicates that a read or write operation should continue until a minimum number of bytes has been transferred, or until an error occurs.
+
 
   unspecified transfer_at_least(
       std::size_t minimum);
@@ -60364,6 +65457,7 @@
 
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/completion_condition.hpp]
@@ -60385,7 +65479,7 @@
       io_service & ios);
 
 
-This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the io_service will create a new instance of the service.
+This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
 
 
 [heading Parameters]
@@ -60393,15 +65487,17 @@
 
 [variablelist
   
-[[ios][The io\_service object that owns the service.]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
+
 [heading Return Value]
       
 The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
 
+
 [heading Requirements]
 
 [*Header: ][^boost/asio/io_service.hpp]
@@ -60414,8 +65510,10 @@
 
 [section:windows__basic_handle windows::basic_handle]
 
+
 Provides Windows handle functionality.
 
+
   template<
       typename ``[link boost_asio.reference.HandleService HandleService]``>
   class basic_handle :
@@ -60538,14 +65636,15 @@
 
 ]
 
-The windows::basic_handle class template provides the ability to wrap a Windows handle.
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -60556,7 +65655,9 @@
 
 [section:assign windows::basic_handle::assign]
 
-[indexterm2 assign..windows::basic_handle] Assign an existing native handle to the handle.
+[indexterm2 assign..windows::basic_handle]
+Assign an existing native handle to the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_handle.assign.overload1 assign]``(
       const native_type & native_handle);
@@ -60570,8 +65671,10 @@
 
 [section:overload1 windows::basic_handle::assign (1 of 2 overloads)]
 
+
 Assign an existing native handle to the handle.
 
+
   void assign(
       const native_type & native_handle);
 
@@ -60583,8 +65686,10 @@
 
 [section:overload2 windows::basic_handle::assign (2 of 2 overloads)]
 
+
 Assign an existing native handle to the handle.
 
+
   boost::system::error_code assign(
       const native_type & native_handle,
       boost::system::error_code & ec);
@@ -60598,13 +65703,17 @@
 
 [section:basic_handle windows::basic_handle::basic_handle]
 
-[indexterm2 basic_handle..windows::basic_handle] Construct a basic_handle without opening it.
+[indexterm2 basic_handle..windows::basic_handle]
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
 
- ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload1 basic_handle]``(
+
+ explicit ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload1 basic_handle]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload1 more...]]``
 
-Construct a basic_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
+
 
   ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload2 basic_handle]``(
       boost::asio::io_service & io_service,
@@ -60614,7 +65723,9 @@
 
 [section:overload1 windows::basic_handle::basic_handle (1 of 2 overloads)]
 
-Construct a basic_handle without opening it.
+
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
+
 
   basic_handle(
       boost::asio::io_service & io_service);
@@ -60628,19 +65739,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_handle::basic_handle (2 of 2 overloads)]
 
-Construct a basic_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
+
 
   basic_handle(
       boost::asio::io_service & io_service,
@@ -60655,12 +65769,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
 
 [[native_handle][A native handle.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -60672,6 +65787,7 @@
 
 
 
+
 [endsect]
 
 
@@ -60679,7 +65795,9 @@
 
 [section:cancel windows::basic_handle::cancel]
 
-[indexterm2 cancel..windows::basic_handle] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..windows::basic_handle]
+Cancel all asynchronous operations associated with the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_handle.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.cancel.overload1 more...]]``
@@ -60691,12 +65809,14 @@
 
 [section:overload1 windows::basic_handle::cancel (1 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -60710,19 +65830,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_handle::cancel (2 of 2 overloads)]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -60736,6 +65859,7 @@
 
 
 
+
 [endsect]
 
 
@@ -60743,7 +65867,9 @@
 
 [section:close windows::basic_handle::close]
 
-[indexterm2 close..windows::basic_handle] Close the handle.
+[indexterm2 close..windows::basic_handle]
+Close the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_handle.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.close.overload1 more...]]``
@@ -60755,12 +65881,14 @@
 
 [section:overload1 windows::basic_handle::close (1 of 2 overloads)]
 
+
 Close the handle.
 
+
   void close();
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -60774,19 +65902,22 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_handle::close (2 of 2 overloads)]
 
+
 Close the handle.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -60800,6 +65931,7 @@
 
 
 
+
 [endsect]
 
 
@@ -60811,17 +65943,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..windows::basic_handle] Get the io_service associated with the object.
+[indexterm2 get_io_service..windows::basic_handle]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -60834,7 +65969,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..windows::basic_handle] The underlying implementation of the I/O object.
+[indexterm2 implementation..windows::basic_handle]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -60849,7 +65986,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..windows::basic_handle] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..windows::basic_handle]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -60871,17 +66010,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..windows::basic_handle] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..windows::basic_handle]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -60891,7 +66033,9 @@
 
 [section:is_open windows::basic_handle::is_open]
 
-[indexterm2 is_open..windows::basic_handle] Determine whether the handle is open.
+[indexterm2 is_open..windows::basic_handle]
+Determine whether the handle is open.
+
 
   bool is_open() const;
 
@@ -60902,25 +66046,31 @@
 
 [section:lowest_layer windows::basic_handle::lowest_layer]
 
-[indexterm2 lowest_layer..windows::basic_handle] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..windows::basic_handle]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 more...]]``
 
 
 [section:overload1 windows::basic_handle::lowest_layer (1 of 2 overloads)]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -60929,18 +66079,21 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_handle::lowest_layer (2 of 2 overloads)]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -60949,6 +66102,7 @@
 
 
 
+
 [endsect]
 
 
@@ -60957,7 +66111,9 @@
 
 [section:lowest_layer_type windows::basic_handle::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..windows::basic_handle] A basic_handle is always the lowest layer.
+[indexterm2 lowest_layer_type..windows::basic_handle]
+A [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] is always the lowest layer.
+
 
   typedef basic_handle< HandleService > lowest_layer_type;
 
@@ -61078,14 +66234,15 @@
 
 ]
 
-The windows::basic_handle class template provides the ability to wrap a Windows handle.
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -61102,7 +66259,9 @@
 
 [section:native windows::basic_handle::native]
 
-[indexterm2 native..windows::basic_handle] Get the native handle representation.
+[indexterm2 native..windows::basic_handle]
+Get the native handle representation.
+
 
   native_type native();
 
@@ -61116,7 +66275,9 @@
 
 [section:native_type windows::basic_handle::native_type]
 
-[indexterm2 native_type..windows::basic_handle] The native representation of a handle.
+[indexterm2 native_type..windows::basic_handle]
+The native representation of a handle.
+
 
   typedef HandleService::native_type native_type;
 
@@ -61138,7 +66299,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..windows::basic_handle] The service associated with the I/O object.
+[indexterm2 service..windows::basic_handle]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -61153,7 +66316,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..windows::basic_handle] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..windows::basic_handle]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef HandleService service_type;
 
@@ -61172,7 +66337,9 @@
 
 [section:_basic_handle windows::basic_handle::~basic_handle]
 
-[indexterm2 ~basic_handle..windows::basic_handle] Protected destructor to prevent deletion through this type.
+[indexterm2 ~basic_handle..windows::basic_handle]
+Protected destructor to prevent deletion through this type.
+
 
   ~basic_handle();
 
@@ -61186,8 +66353,10 @@
 
 [section:windows__basic_random_access_handle windows::basic_random_access_handle]
 
+
 Provides random-access handle functionality.
 
+
   template<
       typename ``[link boost_asio.reference.RandomAccessHandleService RandomAccessHandleService]`` = random_access_handle_service>
   class basic_random_access_handle :
@@ -61319,14 +66488,15 @@
 
 ]
 
-The windows::basic_random_access_handle class template provides asynchronous and blocking random-access handle functionality.
+The [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] class template provides asynchronous and blocking random-access handle functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -61337,7 +66507,9 @@
 
 [section:assign windows::basic_random_access_handle::assign]
 
-[indexterm2 assign..windows::basic_random_access_handle] Assign an existing native handle to the handle.
+[indexterm2 assign..windows::basic_random_access_handle]
+Assign an existing native handle to the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_random_access_handle.assign.overload1 assign]``(
       const native_type & native_handle);
@@ -61354,8 +66526,10 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Assign an existing native handle to the handle.
 
+
   void assign(
       const native_type & native_handle);
 
@@ -61370,8 +66544,10 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Assign an existing native handle to the handle.
 
+
   boost::system::error_code assign(
       const native_type & native_handle,
       boost::system::error_code & ec);
@@ -61386,7 +66562,9 @@
 
 [section:async_read_some_at windows::basic_random_access_handle::async_read_some_at]
 
-[indexterm2 async_read_some_at..windows::basic_random_access_handle] Start an asynchronous read at the specified offset.
+[indexterm2 async_read_some_at..windows::basic_random_access_handle]
+Start an asynchronous read at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -61416,25 +66594,25 @@
      std::size_t bytes_transferred // Number of bytes read.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The read operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read_at async_read_at] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read_at `async_read_at`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.async_read_some_at(42, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -61444,7 +66622,9 @@
 
 [section:async_write_some_at windows::basic_random_access_handle::async_write_some_at]
 
-[indexterm2 async_write_some_at..windows::basic_random_access_handle] Start an asynchronous write at the specified offset.
+[indexterm2 async_write_some_at..windows::basic_random_access_handle]
+Start an asynchronous write at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -61474,25 +66654,25 @@
      std::size_t bytes_transferred // Number of bytes written.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The write operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write_at async_write_at] function if you need to ensure that all data is written before the asynchronous operation completes.
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write_at `async_write_at`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.async_write_some_at(42, boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -61501,13 +66681,17 @@
 
 [section:basic_random_access_handle windows::basic_random_access_handle::basic_random_access_handle]
 
-[indexterm2 basic_random_access_handle..windows::basic_random_access_handle] Construct a basic_random_access_handle without opening it.
+[indexterm2 basic_random_access_handle..windows::basic_random_access_handle]
+Construct a [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] without opening it.
+
 
- ``[link boost_asio.reference.windows__basic_random_access_handle.basic_random_access_handle.overload1 basic_random_access_handle]``(
+ explicit ``[link boost_asio.reference.windows__basic_random_access_handle.basic_random_access_handle.overload1 basic_random_access_handle]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.basic_random_access_handle.overload1 more...]]``
 
-Construct a basic_random_access_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] on an existing native handle.
+
 
   ``[link boost_asio.reference.windows__basic_random_access_handle.basic_random_access_handle.overload2 basic_random_access_handle]``(
       boost::asio::io_service & io_service,
@@ -61517,7 +66701,9 @@
 
 [section:overload1 windows::basic_random_access_handle::basic_random_access_handle (1 of 2 overloads)]
 
-Construct a basic_random_access_handle without opening it.
+
+Construct a [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] without opening it.
+
 
   basic_random_access_handle(
       boost::asio::io_service & io_service);
@@ -61531,19 +66717,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the random-access handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the random-access handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_random_access_handle::basic_random_access_handle (2 of 2 overloads)]
 
-Construct a basic_random_access_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] on an existing native handle.
+
 
   basic_random_access_handle(
       boost::asio::io_service & io_service,
@@ -61558,12 +66747,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the random-access handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the random-access handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
 
 [[native_handle][The new underlying handle implementation.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -61575,6 +66765,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61582,7 +66773,9 @@
 
 [section:cancel windows::basic_random_access_handle::cancel]
 
-[indexterm2 cancel..windows::basic_random_access_handle] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..windows::basic_random_access_handle]
+Cancel all asynchronous operations associated with the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_random_access_handle.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.cancel.overload1 more...]]``
@@ -61597,12 +66790,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -61616,6 +66811,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61625,13 +66821,15 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -61645,6 +66843,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61652,7 +66851,9 @@
 
 [section:close windows::basic_random_access_handle::close]
 
-[indexterm2 close..windows::basic_random_access_handle] Close the handle.
+[indexterm2 close..windows::basic_random_access_handle]
+Close the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_random_access_handle.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.close.overload1 more...]]``
@@ -61667,12 +66868,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Close the handle.
 
+
   void close();
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -61686,6 +66889,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61695,13 +66899,15 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Close the handle.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -61715,6 +66921,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61726,17 +66933,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..windows::basic_random_access_handle] Get the io_service associated with the object.
+[indexterm2 get_io_service..windows::basic_random_access_handle]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -61749,7 +66959,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..windows::basic_random_access_handle] The underlying implementation of the I/O object.
+[indexterm2 implementation..windows::basic_random_access_handle]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -61764,7 +66976,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..windows::basic_random_access_handle] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..windows::basic_random_access_handle]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -61786,17 +67000,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..windows::basic_random_access_handle] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..windows::basic_random_access_handle]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -61809,7 +67026,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 is_open..windows::basic_random_access_handle] Determine whether the handle is open.
+[indexterm2 is_open..windows::basic_random_access_handle]
+Determine whether the handle is open.
+
 
   bool is_open() const;
 
@@ -61820,13 +67039,17 @@
 
 [section:lowest_layer windows::basic_random_access_handle::lowest_layer]
 
-[indexterm2 lowest_layer..windows::basic_random_access_handle] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..windows::basic_random_access_handle]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.windows__basic_random_access_handle.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.windows__basic_random_access_handle.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_random_access_handle.lowest_layer.overload2 more...]]``
 
@@ -61836,12 +67059,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -61850,6 +67075,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61859,12 +67085,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -61873,6 +67101,7 @@
 
 
 
+
 [endsect]
 
 
@@ -61884,7 +67113,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 lowest_layer_type..windows::basic_random_access_handle] A basic_handle is always the lowest layer.
+[indexterm2 lowest_layer_type..windows::basic_random_access_handle]
+A [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] is always the lowest layer.
+
 
   typedef basic_handle< RandomAccessHandleService > lowest_layer_type;
 
@@ -62005,14 +67236,15 @@
 
 ]
 
-The windows::basic_handle class template provides the ability to wrap a Windows handle.
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -62032,7 +67264,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 native..windows::basic_random_access_handle] Get the native handle representation.
+[indexterm2 native..windows::basic_random_access_handle]
+Get the native handle representation.
+
 
   native_type native();
 
@@ -62046,7 +67280,9 @@
 
 [section:native_type windows::basic_random_access_handle::native_type]
 
-[indexterm2 native_type..windows::basic_random_access_handle] The native representation of a handle.
+[indexterm2 native_type..windows::basic_random_access_handle]
+The native representation of a handle.
+
 
   typedef RandomAccessHandleService::native_type native_type;
 
@@ -62064,7 +67300,9 @@
 
 [section:read_some_at windows::basic_random_access_handle::read_some_at]
 
-[indexterm2 read_some_at..windows::basic_random_access_handle] Read some data from the handle at the specified offset.
+[indexterm2 read_some_at..windows::basic_random_access_handle]
+Read some data from the handle at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -62084,8 +67322,10 @@
 
 [section:overload1 windows::basic_random_access_handle::read_some_at (1 of 2 overloads)]
 
+
 Read some data from the handle at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some_at(
@@ -62107,34 +67347,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read_at read_at] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read_at `read_at`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.read_some_at(42, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -62144,8 +67386,10 @@
 
 [section:overload2 windows::basic_random_access_handle::read_some_at (2 of 2 overloads)]
 
+
 Read some data from the handle at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some_at(
@@ -62170,14 +67414,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read_at read_at] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read_at `read_at`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -62192,7 +67438,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..windows::basic_random_access_handle] The service associated with the I/O object.
+[indexterm2 service..windows::basic_random_access_handle]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -62207,7 +67455,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..windows::basic_random_access_handle] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..windows::basic_random_access_handle]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef RandomAccessHandleService service_type;
 
@@ -62225,7 +67475,9 @@
 
 [section:write_some_at windows::basic_random_access_handle::write_some_at]
 
-[indexterm2 write_some_at..windows::basic_random_access_handle] Write some data to the handle at the specified offset.
+[indexterm2 write_some_at..windows::basic_random_access_handle]
+Write some data to the handle at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -62245,8 +67497,10 @@
 
 [section:overload1 windows::basic_random_access_handle::write_some_at (1 of 2 overloads)]
 
+
 Write some data to the handle at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some_at(
@@ -62268,34 +67522,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The write\_some\_at operation may not write all of the data. Consider using the
-[link boost_asio.reference.write_at write_at] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some\_at operation may not write all of the data. Consider using the [link boost_asio.reference.write_at `write_at`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.write_some_at(42, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -62305,8 +67561,10 @@
 
 [section:overload2 windows::basic_random_access_handle::write_some_at (2 of 2 overloads)]
 
+
 Write some data to the handle at the specified offset.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some_at(
@@ -62331,14 +67589,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write_at write_at] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write_at `write_at`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -62352,8 +67612,10 @@
 
 [section:windows__basic_stream_handle windows::basic_stream_handle]
 
+
 Provides stream-oriented handle functionality.
 
+
   template<
       typename ``[link boost_asio.reference.StreamHandleService StreamHandleService]`` = stream_handle_service>
   class basic_stream_handle :
@@ -62485,14 +67747,16 @@
 
 ]
 
-The windows::basic_stream_handle class template provides asynchronous and blocking stream-oriented handle functionality.
+The [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] class template provides asynchronous and blocking stream-oriented handle functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -62503,7 +67767,9 @@
 
 [section:assign windows::basic_stream_handle::assign]
 
-[indexterm2 assign..windows::basic_stream_handle] Assign an existing native handle to the handle.
+[indexterm2 assign..windows::basic_stream_handle]
+Assign an existing native handle to the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_stream_handle.assign.overload1 assign]``(
       const native_type & native_handle);
@@ -62520,8 +67786,10 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Assign an existing native handle to the handle.
 
+
   void assign(
       const native_type & native_handle);
 
@@ -62536,8 +67804,10 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Assign an existing native handle to the handle.
 
+
   boost::system::error_code assign(
       const native_type & native_handle,
       boost::system::error_code & ec);
@@ -62552,7 +67822,9 @@
 
 [section:async_read_some windows::basic_stream_handle::async_read_some]
 
-[indexterm2 async_read_some..windows::basic_stream_handle] Start an asynchronous read.
+[indexterm2 async_read_some..windows::basic_stream_handle]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -62579,25 +67851,25 @@
      std::size_t bytes_transferred // Number of bytes read.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The read operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.async_read async_read] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.async_read_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -62607,7 +67879,9 @@
 
 [section:async_write_some windows::basic_stream_handle::async_write_some]
 
-[indexterm2 async_write_some..windows::basic_stream_handle] Start an asynchronous write.
+[indexterm2 async_write_some..windows::basic_stream_handle]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -62634,25 +67908,25 @@
      std::size_t bytes_transferred // Number of bytes written.
    );
 ``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using boost::asio::io\_service::post().]]
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
+
 [heading Remarks]
       
-The write operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.async_write async_write] function if you need to ensure that all data is written before the asynchronous operation completes.
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.async_write_some(boost::asio::buffer(data, size), handler);
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -62661,13 +67935,17 @@
 
 [section:basic_stream_handle windows::basic_stream_handle::basic_stream_handle]
 
-[indexterm2 basic_stream_handle..windows::basic_stream_handle] Construct a basic_stream_handle without opening it.
+[indexterm2 basic_stream_handle..windows::basic_stream_handle]
+Construct a [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] without opening it.
 
- ``[link boost_asio.reference.windows__basic_stream_handle.basic_stream_handle.overload1 basic_stream_handle]``(
+
+ explicit ``[link boost_asio.reference.windows__basic_stream_handle.basic_stream_handle.overload1 basic_stream_handle]``(
       boost::asio::io_service & io_service);
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_stream_handle.basic_stream_handle.overload1 more...]]``
 
-Construct a basic_stream_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] on an existing native handle.
+
 
   ``[link boost_asio.reference.windows__basic_stream_handle.basic_stream_handle.overload2 basic_stream_handle]``(
       boost::asio::io_service & io_service,
@@ -62677,7 +67955,9 @@
 
 [section:overload1 windows::basic_stream_handle::basic_stream_handle (1 of 2 overloads)]
 
-Construct a basic_stream_handle without opening it.
+
+Construct a [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] without opening it.
+
 
   basic_stream_handle(
       boost::asio::io_service & io_service);
@@ -62691,19 +67971,22 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
 
 ]
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 windows::basic_stream_handle::basic_stream_handle (2 of 2 overloads)]
 
-Construct a basic_stream_handle on an existing native handle.
+
+Construct a [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] on an existing native handle.
+
 
   basic_stream_handle(
       boost::asio::io_service & io_service,
@@ -62718,12 +68001,13 @@
 
 [variablelist
   
-[[io_service][The io\_service object that the stream handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
 
 [[native_handle][The new underlying handle implementation.]]
 
 ]
 
+
 [heading Exceptions]
     
 
@@ -62735,6 +68019,7 @@
 
 
 
+
 [endsect]
 
 
@@ -62742,7 +68027,9 @@
 
 [section:cancel windows::basic_stream_handle::cancel]
 
-[indexterm2 cancel..windows::basic_stream_handle] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..windows::basic_stream_handle]
+Cancel all asynchronous operations associated with the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_stream_handle.cancel.overload1 cancel]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_stream_handle.cancel.overload1 more...]]``
@@ -62757,12 +68044,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   void cancel();
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -62776,6 +68065,7 @@
 
 
 
+
 [endsect]
 
 
@@ -62785,13 +68075,15 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Cancel all asynchronous operations associated with the handle.
 
+
   boost::system::error_code cancel(
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the boost::asio::error::operation\_aborted error.
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -62805,6 +68097,7 @@
 
 
 
+
 [endsect]
 
 
@@ -62812,7 +68105,9 @@
 
 [section:close windows::basic_stream_handle::close]
 
-[indexterm2 close..windows::basic_stream_handle] Close the handle.
+[indexterm2 close..windows::basic_stream_handle]
+Close the handle.
+
 
   void ``[link boost_asio.reference.windows__basic_stream_handle.close.overload1 close]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_stream_handle.close.overload1 more...]]``
@@ -62827,12 +68122,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Close the handle.
 
+
   void close();
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Exceptions]
@@ -62846,6 +68143,7 @@
 
 
 
+
 [endsect]
 
 
@@ -62855,13 +68153,15 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Close the handle.
 
+
   boost::system::error_code close(
       boost::system::error_code & ec);
 
 
-This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the boost::asio::error::operation\_aborted error.
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
 [heading Parameters]
@@ -62875,6 +68175,7 @@
 
 
 
+
 [endsect]
 
 
@@ -62886,17 +68187,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..windows::basic_stream_handle] Get the io_service associated with the object.
+[indexterm2 get_io_service..windows::basic_stream_handle]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & get_io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -62909,7 +68213,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..windows::basic_stream_handle] The underlying implementation of the I/O object.
+[indexterm2 implementation..windows::basic_stream_handle]
+The underlying implementation of the I/O object.
+
 
   implementation_type implementation;
 
@@ -62924,7 +68230,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..windows::basic_stream_handle] The underlying implementation type of I/O object.
+[indexterm2 implementation_type..windows::basic_stream_handle]
+The underlying implementation type of I/O object.
+
 
   typedef service_type::implementation_type implementation_type;
 
@@ -62946,17 +68254,20 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 io_service..windows::basic_stream_handle] (Deprecated: use get_io_service().) Get the io_service associated with the object.
+[indexterm2 io_service..windows::basic_stream_handle]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+
 
   boost::asio::io_service & io_service();
 
 
-This function may be used to obtain the io_service object that the I/O object uses to dispatch handlers for asynchronous operations.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
 [heading Return Value]
       
-A reference to the io_service object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+
 
 
 
@@ -62969,7 +68280,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 is_open..windows::basic_stream_handle] Determine whether the handle is open.
+[indexterm2 is_open..windows::basic_stream_handle]
+Determine whether the handle is open.
+
 
   bool is_open() const;
 
@@ -62980,13 +68293,17 @@
 
 [section:lowest_layer windows::basic_stream_handle::lowest_layer]
 
-[indexterm2 lowest_layer..windows::basic_stream_handle] Get a reference to the lowest layer.
+[indexterm2 lowest_layer..windows::basic_stream_handle]
+Get a reference to the lowest layer.
+
 
   lowest_layer_type & ``[link boost_asio.reference.windows__basic_stream_handle.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_stream_handle.lowest_layer.overload1 more...]]``
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & ``[link boost_asio.reference.windows__basic_stream_handle.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.windows__basic_stream_handle.lowest_layer.overload2 more...]]``
 
@@ -62996,12 +68313,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Get a reference to the lowest layer.
 
+
   lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -63010,6 +68329,7 @@
 
 
 
+
 [endsect]
 
 
@@ -63019,12 +68339,14 @@
 
 ['Inherited from windows::basic_handle.]
 
+
 Get a const reference to the lowest layer.
 
+
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a basic_handle cannot contain any further layers, it simply returns a reference to itself.
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
 
 [heading Return Value]
@@ -63033,6 +68355,7 @@
 
 
 
+
 [endsect]
 
 
@@ -63044,7 +68367,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 lowest_layer_type..windows::basic_stream_handle] A basic_handle is always the lowest layer.
+[indexterm2 lowest_layer_type..windows::basic_stream_handle]
+A [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] is always the lowest layer.
+
 
   typedef basic_handle< StreamHandleService > lowest_layer_type;
 
@@ -63165,14 +68490,15 @@
 
 ]
 
-The windows::basic_handle class template provides the ability to wrap a Windows handle.
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -63192,7 +68518,9 @@
 
 ['Inherited from windows::basic_handle.]
 
-[indexterm2 native..windows::basic_stream_handle] Get the native handle representation.
+[indexterm2 native..windows::basic_stream_handle]
+Get the native handle representation.
+
 
   native_type native();
 
@@ -63206,7 +68534,9 @@
 
 [section:native_type windows::basic_stream_handle::native_type]
 
-[indexterm2 native_type..windows::basic_stream_handle] The native representation of a handle.
+[indexterm2 native_type..windows::basic_stream_handle]
+The native representation of a handle.
+
 
   typedef StreamHandleService::native_type native_type;
 
@@ -63224,7 +68554,9 @@
 
 [section:read_some windows::basic_stream_handle::read_some]
 
-[indexterm2 read_some..windows::basic_stream_handle] Read some data from the handle.
+[indexterm2 read_some..windows::basic_stream_handle]
+Read some data from the handle.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -63242,8 +68574,10 @@
 
 [section:overload1 windows::basic_stream_handle::read_some (1 of 2 overloads)]
 
+
 Read some data from the handle.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -63262,34 +68596,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 [heading Example]
   
-To read into a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.read_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -63299,8 +68635,10 @@
 
 [section:overload2 windows::basic_stream_handle::read_some (2 of 2 overloads)]
 
+
 Read some data from the handle.
 
+
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t read_some(
@@ -63322,14 +68660,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes read. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The read\_some operation may not read all of the requested number of bytes. Consider using the
-[link boost_asio.reference.read read] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
 
 
 
@@ -63344,7 +68684,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..windows::basic_stream_handle] The service associated with the I/O object.
+[indexterm2 service..windows::basic_stream_handle]
+The service associated with the I/O object.
+
 
   service_type & service;
 
@@ -63359,7 +68701,9 @@
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..windows::basic_stream_handle] The type of the service that will be used to provide I/O operations.
+[indexterm2 service_type..windows::basic_stream_handle]
+The type of the service that will be used to provide I/O operations.
+
 
   typedef StreamHandleService service_type;
 
@@ -63377,7 +68721,9 @@
 
 [section:write_some windows::basic_stream_handle::write_some]
 
-[indexterm2 write_some..windows::basic_stream_handle] Write some data to the handle.
+[indexterm2 write_some..windows::basic_stream_handle]
+Write some data to the handle.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -63395,8 +68741,10 @@
 
 [section:overload1 windows::basic_stream_handle::write_some (1 of 2 overloads)]
 
+
 Write some data to the handle.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -63415,34 +68763,36 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written.
 
+
 [heading Exceptions]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure. An error code of boost::asio::error::eof indicates that the connection was closed by the peer.]]
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
 ]
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    handle.write_some(boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -63452,8 +68802,10 @@
 
 [section:overload2 windows::basic_stream_handle::write_some (2 of 2 overloads)]
 
+
 Write some data to the handle.
 
+
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t write_some(
@@ -63475,14 +68827,16 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. Returns 0 if an error occurred.
 
+
 [heading Remarks]
       
-The write\_some operation may not transmit all of the data to the peer. Consider using the
-[link boost_asio.reference.write write] function if you need to ensure that all data is written before the blocking operation completes.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
 
 
 
@@ -63496,8 +68850,10 @@
 
 [section:windows__overlapped_ptr windows::overlapped_ptr]
 
+
 Wraps a handler to create an OVERLAPPED object for use with overlapped I/O.
 
+
   class overlapped_ptr :
     noncopyable
 
@@ -63547,9 +68903,10 @@
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 [heading Requirements]
@@ -63561,7 +68918,9 @@
 
 [section:complete windows::overlapped_ptr::complete]
 
-[indexterm2 complete..windows::overlapped_ptr] Post completion notification for overlapped operation. Releases ownership.
+[indexterm2 complete..windows::overlapped_ptr]
+Post completion notification for overlapped operation. Releases ownership.
+
 
   void complete(
       const boost::system::error_code & ec,
@@ -63574,7 +68933,9 @@
 
 [section:get windows::overlapped_ptr::get]
 
-[indexterm2 get..windows::overlapped_ptr] Get the contained OVERLAPPED object.
+[indexterm2 get..windows::overlapped_ptr]
+Get the contained OVERLAPPED object.
+
 
   OVERLAPPED * ``[link boost_asio.reference.windows__overlapped_ptr.get.overload1 get]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__overlapped_ptr.get.overload1 more...]]``
@@ -63585,8 +68946,10 @@
 
 [section:overload1 windows::overlapped_ptr::get (1 of 2 overloads)]
 
+
 Get the contained OVERLAPPED object.
 
+
   OVERLAPPED * get();
 
 
@@ -63597,8 +68960,10 @@
 
 [section:overload2 windows::overlapped_ptr::get (2 of 2 overloads)]
 
+
 Get the contained OVERLAPPED object.
 
+
   const OVERLAPPED * get() const;
 
 
@@ -63610,16 +68975,20 @@
 
 [section:overlapped_ptr windows::overlapped_ptr::overlapped_ptr]
 
-[indexterm2 overlapped_ptr..windows::overlapped_ptr] Construct an empty overlapped_ptr.
+[indexterm2 overlapped_ptr..windows::overlapped_ptr]
+Construct an empty [link boost_asio.reference.windows__overlapped_ptr `windows::overlapped_ptr`].
+
 
   ``[link boost_asio.reference.windows__overlapped_ptr.overlapped_ptr.overload1 overlapped_ptr]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__overlapped_ptr.overlapped_ptr.overload1 more...]]``
 
-Construct an overlapped_ptr to contain the specified handler.
+
+Construct an [link boost_asio.reference.windows__overlapped_ptr `windows::overlapped_ptr`] to contain the specified handler.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
- ``[link boost_asio.reference.windows__overlapped_ptr.overlapped_ptr.overload2 overlapped_ptr]``(
+ explicit ``[link boost_asio.reference.windows__overlapped_ptr.overlapped_ptr.overload2 overlapped_ptr]``(
       boost::asio::io_service & io_service,
       Handler handler);
   `` [''''&raquo;''' [link boost_asio.reference.windows__overlapped_ptr.overlapped_ptr.overload2 more...]]``
@@ -63627,7 +68996,9 @@
 
 [section:overload1 windows::overlapped_ptr::overlapped_ptr (1 of 2 overloads)]
 
-Construct an empty overlapped_ptr.
+
+Construct an empty [link boost_asio.reference.windows__overlapped_ptr `windows::overlapped_ptr`].
+
 
   overlapped_ptr();
 
@@ -63639,7 +69010,9 @@
 
 [section:overload2 windows::overlapped_ptr::overlapped_ptr (2 of 2 overloads)]
 
-Construct an overlapped_ptr to contain the specified handler.
+
+Construct an [link boost_asio.reference.windows__overlapped_ptr `windows::overlapped_ptr`] to contain the specified handler.
+
 
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
@@ -63657,7 +69030,9 @@
 
 [section:release windows::overlapped_ptr::release]
 
-[indexterm2 release..windows::overlapped_ptr] Release ownership of the OVERLAPPED object.
+[indexterm2 release..windows::overlapped_ptr]
+Release ownership of the OVERLAPPED object.
+
 
   OVERLAPPED * release();
 
@@ -63668,13 +69043,17 @@
 
 [section:reset windows::overlapped_ptr::reset]
 
-[indexterm2 reset..windows::overlapped_ptr] Reset to empty.
+[indexterm2 reset..windows::overlapped_ptr]
+Reset to empty.
+
 
   void ``[link boost_asio.reference.windows__overlapped_ptr.reset.overload1 reset]``();
   `` [''''&raquo;''' [link boost_asio.reference.windows__overlapped_ptr.reset.overload1 more...]]``
 
+
 Reset to contain the specified handler, freeing any current OVERLAPPED object.
 
+
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
   void ``[link boost_asio.reference.windows__overlapped_ptr.reset.overload2 reset]``(
@@ -63685,8 +69064,10 @@
 
 [section:overload1 windows::overlapped_ptr::reset (1 of 2 overloads)]
 
+
 Reset to empty.
 
+
   void reset();
 
 
@@ -63697,8 +69078,10 @@
 
 [section:overload2 windows::overlapped_ptr::reset (2 of 2 overloads)]
 
+
 Reset to contain the specified handler, freeing any current OVERLAPPED object.
 
+
   template<
       typename ``[link boost_asio.reference.Handler Handler]``>
   void reset(
@@ -63715,7 +69098,9 @@
 
 [section:_overlapped_ptr windows::overlapped_ptr::~overlapped_ptr]
 
-[indexterm2 ~overlapped_ptr..windows::overlapped_ptr] Destructor automatically frees the OVERLAPPED object unless released.
+[indexterm2 ~overlapped_ptr..windows::overlapped_ptr]
+Destructor automatically frees the OVERLAPPED object unless released.
+
 
   ~overlapped_ptr();
 
@@ -63730,7 +69115,9 @@
 
 [section:windows__random_access_handle windows::random_access_handle]
 
-[indexterm1 windows::random_access_handle] Typedef for the typical usage of a random-access handle.
+[indexterm1 windows::random_access_handle]
+Typedef for the typical usage of a random-access handle.
+
 
   typedef basic_random_access_handle random_access_handle;
 
@@ -63860,14 +69247,15 @@
 
 ]
 
-The windows::basic_random_access_handle class template provides asynchronous and blocking random-access handle functionality.
+The [link boost_asio.reference.windows__basic_random_access_handle `windows::basic_random_access_handle`] class template provides asynchronous and blocking random-access handle functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -63883,8 +69271,10 @@
 
 [section:windows__random_access_handle_service windows::random_access_handle_service]
 
+
 Default service implementation for a random-access handle.
 
+
   class random_access_handle_service :
     public io_service::service
 
@@ -64010,7 +69400,9 @@
 
 [section:assign windows::random_access_handle_service::assign]
 
-[indexterm2 assign..windows::random_access_handle_service] Assign an existing native handle to a random-access handle.
+[indexterm2 assign..windows::random_access_handle_service]
+Assign an existing native handle to a random-access handle.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -64025,7 +69417,9 @@
 
 [section:async_read_some_at windows::random_access_handle_service::async_read_some_at]
 
-[indexterm2 async_read_some_at..windows::random_access_handle_service] Start an asynchronous read at the specified offset.
+[indexterm2 async_read_some_at..windows::random_access_handle_service]
+Start an asynchronous read at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -64044,7 +69438,9 @@
 
 [section:async_write_some_at windows::random_access_handle_service::async_write_some_at]
 
-[indexterm2 async_write_some_at..windows::random_access_handle_service] Start an asynchronous write at the specified offset.
+[indexterm2 async_write_some_at..windows::random_access_handle_service]
+Start an asynchronous write at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -64063,7 +69459,9 @@
 
 [section:cancel windows::random_access_handle_service::cancel]
 
-[indexterm2 cancel..windows::random_access_handle_service] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..windows::random_access_handle_service]
+Cancel all asynchronous operations associated with the handle.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -64077,7 +69475,9 @@
 
 [section:close windows::random_access_handle_service::close]
 
-[indexterm2 close..windows::random_access_handle_service] Close a random-access handle implementation.
+[indexterm2 close..windows::random_access_handle_service]
+Close a random-access handle implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -64091,7 +69491,9 @@
 
 [section:construct windows::random_access_handle_service::construct]
 
-[indexterm2 construct..windows::random_access_handle_service] Construct a new random-access handle implementation.
+[indexterm2 construct..windows::random_access_handle_service]
+Construct a new random-access handle implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -64104,7 +69506,9 @@
 
 [section:destroy windows::random_access_handle_service::destroy]
 
-[indexterm2 destroy..windows::random_access_handle_service] Destroy a random-access handle implementation.
+[indexterm2 destroy..windows::random_access_handle_service]
+Destroy a random-access handle implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -64120,7 +69524,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..windows::random_access_handle_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..windows::random_access_handle_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -64132,7 +69538,9 @@
 
 [section:id windows::random_access_handle_service::id]
 
-[indexterm2 id..windows::random_access_handle_service] The unique service identifier.
+[indexterm2 id..windows::random_access_handle_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -64144,7 +69552,9 @@
 
 [section:implementation_type windows::random_access_handle_service::implementation_type]
 
-[indexterm2 implementation_type..windows::random_access_handle_service] The type of a random-access handle implementation.
+[indexterm2 implementation_type..windows::random_access_handle_service]
+The type of a random-access handle implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -64166,7 +69576,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..windows::random_access_handle_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..windows::random_access_handle_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -64178,7 +69590,9 @@
 
 [section:is_open windows::random_access_handle_service::is_open]
 
-[indexterm2 is_open..windows::random_access_handle_service] Determine whether the handle is open.
+[indexterm2 is_open..windows::random_access_handle_service]
+Determine whether the handle is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -64191,7 +69605,9 @@
 
 [section:native windows::random_access_handle_service::native]
 
-[indexterm2 native..windows::random_access_handle_service] Get the native handle implementation.
+[indexterm2 native..windows::random_access_handle_service]
+Get the native handle implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -64204,7 +69620,9 @@
 
 [section:native_type windows::random_access_handle_service::native_type]
 
-[indexterm2 native_type..windows::random_access_handle_service] The native handle type.
+[indexterm2 native_type..windows::random_access_handle_service]
+The native handle type.
+
 
   typedef implementation_defined native_type;
 
@@ -64223,7 +69641,9 @@
 
 [section:random_access_handle_service windows::random_access_handle_service::random_access_handle_service]
 
-[indexterm2 random_access_handle_service..windows::random_access_handle_service] Construct a new random-access handle service for the specified io_service.
+[indexterm2 random_access_handle_service..windows::random_access_handle_service]
+Construct a new random-access handle service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   random_access_handle_service(
       boost::asio::io_service & io_service);
@@ -64236,7 +69656,9 @@
 
 [section:read_some_at windows::random_access_handle_service::read_some_at]
 
-[indexterm2 read_some_at..windows::random_access_handle_service] Read some data from the specified offset.
+[indexterm2 read_some_at..windows::random_access_handle_service]
+Read some data from the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -64254,7 +69676,9 @@
 
 [section:shutdown_service windows::random_access_handle_service::shutdown_service]
 
-[indexterm2 shutdown_service..windows::random_access_handle_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..windows::random_access_handle_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -64266,7 +69690,9 @@
 
 [section:write_some_at windows::random_access_handle_service::write_some_at]
 
-[indexterm2 write_some_at..windows::random_access_handle_service] Write the given data at the specified offset.
+[indexterm2 write_some_at..windows::random_access_handle_service]
+Write the given data at the specified offset.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -64287,7 +69713,9 @@
 
 [section:windows__stream_handle windows::stream_handle]
 
-[indexterm1 windows::stream_handle] Typedef for the typical usage of a stream-oriented handle.
+[indexterm1 windows::stream_handle]
+Typedef for the typical usage of a stream-oriented handle.
+
 
   typedef basic_stream_handle stream_handle;
 
@@ -64417,14 +69845,16 @@
 
 ]
 
-The windows::basic_stream_handle class template provides asynchronous and blocking stream-oriented handle functionality.
+The [link boost_asio.reference.windows__basic_stream_handle `windows::basic_stream_handle`] class template provides asynchronous and blocking stream-oriented handle functionality.
 
 
 [heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -64440,8 +69870,10 @@
 
 [section:windows__stream_handle_service windows::stream_handle_service]
 
+
 Default service implementation for a stream handle.
 
+
   class stream_handle_service :
     public io_service::service
 
@@ -64567,7 +69999,9 @@
 
 [section:assign windows::stream_handle_service::assign]
 
-[indexterm2 assign..windows::stream_handle_service] Assign an existing native handle to a stream handle.
+[indexterm2 assign..windows::stream_handle_service]
+Assign an existing native handle to a stream handle.
+
 
   boost::system::error_code assign(
       implementation_type & impl,
@@ -64582,7 +70016,9 @@
 
 [section:async_read_some windows::stream_handle_service::async_read_some]
 
-[indexterm2 async_read_some..windows::stream_handle_service] Start an asynchronous read.
+[indexterm2 async_read_some..windows::stream_handle_service]
+Start an asynchronous read.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
@@ -64600,7 +70036,9 @@
 
 [section:async_write_some windows::stream_handle_service::async_write_some]
 
-[indexterm2 async_write_some..windows::stream_handle_service] Start an asynchronous write.
+[indexterm2 async_write_some..windows::stream_handle_service]
+Start an asynchronous write.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -64618,7 +70056,9 @@
 
 [section:cancel windows::stream_handle_service::cancel]
 
-[indexterm2 cancel..windows::stream_handle_service] Cancel all asynchronous operations associated with the handle.
+[indexterm2 cancel..windows::stream_handle_service]
+Cancel all asynchronous operations associated with the handle.
+
 
   boost::system::error_code cancel(
       implementation_type & impl,
@@ -64632,7 +70072,9 @@
 
 [section:close windows::stream_handle_service::close]
 
-[indexterm2 close..windows::stream_handle_service] Close a stream handle implementation.
+[indexterm2 close..windows::stream_handle_service]
+Close a stream handle implementation.
+
 
   boost::system::error_code close(
       implementation_type & impl,
@@ -64646,7 +70088,9 @@
 
 [section:construct windows::stream_handle_service::construct]
 
-[indexterm2 construct..windows::stream_handle_service] Construct a new stream handle implementation.
+[indexterm2 construct..windows::stream_handle_service]
+Construct a new stream handle implementation.
+
 
   void construct(
       implementation_type & impl);
@@ -64659,7 +70103,9 @@
 
 [section:destroy windows::stream_handle_service::destroy]
 
-[indexterm2 destroy..windows::stream_handle_service] Destroy a stream handle implementation.
+[indexterm2 destroy..windows::stream_handle_service]
+Destroy a stream handle implementation.
+
 
   void destroy(
       implementation_type & impl);
@@ -64675,7 +70121,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 get_io_service..windows::stream_handle_service] Get the io_service object that owns the service.
+[indexterm2 get_io_service..windows::stream_handle_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & get_io_service();
 
@@ -64687,7 +70135,9 @@
 
 [section:id windows::stream_handle_service::id]
 
-[indexterm2 id..windows::stream_handle_service] The unique service identifier.
+[indexterm2 id..windows::stream_handle_service]
+The unique service identifier.
+
 
   static boost::asio::io_service::id id;
 
@@ -64699,7 +70149,9 @@
 
 [section:implementation_type windows::stream_handle_service::implementation_type]
 
-[indexterm2 implementation_type..windows::stream_handle_service] The type of a stream handle implementation.
+[indexterm2 implementation_type..windows::stream_handle_service]
+The type of a stream handle implementation.
+
 
   typedef implementation_defined implementation_type;
 
@@ -64721,7 +70173,9 @@
 
 ['Inherited from io_service.]
 
-[indexterm2 io_service..windows::stream_handle_service] (Deprecated: use get_io_service().) Get the io_service object that owns the service.
+[indexterm2 io_service..windows::stream_handle_service]
+(Deprecated: use `get_io_service()`.) Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
 
   boost::asio::io_service & io_service();
 
@@ -64733,7 +70187,9 @@
 
 [section:is_open windows::stream_handle_service::is_open]
 
-[indexterm2 is_open..windows::stream_handle_service] Determine whether the handle is open.
+[indexterm2 is_open..windows::stream_handle_service]
+Determine whether the handle is open.
+
 
   bool is_open(
       const implementation_type & impl) const;
@@ -64746,7 +70202,9 @@
 
 [section:native windows::stream_handle_service::native]
 
-[indexterm2 native..windows::stream_handle_service] Get the native handle implementation.
+[indexterm2 native..windows::stream_handle_service]
+Get the native handle implementation.
+
 
   native_type native(
       implementation_type & impl);
@@ -64759,7 +70217,9 @@
 
 [section:native_type windows::stream_handle_service::native_type]
 
-[indexterm2 native_type..windows::stream_handle_service] The native handle type.
+[indexterm2 native_type..windows::stream_handle_service]
+The native handle type.
+
 
   typedef implementation_defined native_type;
 
@@ -64778,7 +70238,9 @@
 
 [section:read_some windows::stream_handle_service::read_some]
 
-[indexterm2 read_some..windows::stream_handle_service] Read some data from the stream.
+[indexterm2 read_some..windows::stream_handle_service]
+Read some data from the stream.
+
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
@@ -64795,7 +70257,9 @@
 
 [section:shutdown_service windows::stream_handle_service::shutdown_service]
 
-[indexterm2 shutdown_service..windows::stream_handle_service] Destroy all user-defined handler objects owned by the service.
+[indexterm2 shutdown_service..windows::stream_handle_service]
+Destroy all user-defined handler objects owned by the service.
+
 
   void shutdown_service();
 
@@ -64807,7 +70271,9 @@
 
 [section:stream_handle_service windows::stream_handle_service::stream_handle_service]
 
-[indexterm2 stream_handle_service..windows::stream_handle_service] Construct a new stream handle service for the specified io_service.
+[indexterm2 stream_handle_service..windows::stream_handle_service]
+Construct a new stream handle service for the specified [link boost_asio.reference.io_service `io_service`].
+
 
   stream_handle_service(
       boost::asio::io_service & io_service);
@@ -64820,7 +70286,9 @@
 
 [section:write_some windows::stream_handle_service::write_some]
 
-[indexterm2 write_some..windows::stream_handle_service] Write the given data to the stream.
+[indexterm2 write_some..windows::stream_handle_service]
+Write the given data to the stream.
+
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -64839,7 +70307,9 @@
 
 [section:write write]
 
-[indexterm1 write] Write a certain amount of data to a stream before returning.
+[indexterm1 write]
+Write a certain amount of data to a stream before returning.
+
       
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
@@ -64908,8 +70378,10 @@
 
 [section:overload1 write (1 of 6 overloads)]
 
+
 Write all of the supplied data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -64923,6 +70395,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -64939,10 +70412,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -64952,16 +70427,16 @@
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::write(s, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -64976,14 +70451,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 write (2 of 6 overloads)]
 
+
 Write a certain amount of data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -64999,6 +70477,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -65027,10 +70506,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65040,17 +70521,17 @@
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::write(s, boost::asio::buffer(data, size),
        boost::asio::transfer_at_least(32));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -65060,8 +70541,10 @@
 
 [section:overload3 write (3 of 6 overloads)]
 
+
 Write a certain amount of data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -65078,6 +70561,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -65108,20 +70592,24 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 write (4 of 6 overloads)]
 
+
 Write all of the supplied data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename Allocator>
@@ -65135,6 +70623,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -65147,14 +70636,16 @@
   
 [[s][The stream to which the data is to be written. The type must support the SyncWriteStream concept.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65164,6 +70655,7 @@
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -65177,14 +70669,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 write (5 of 6 overloads)]
 
+
 Write a certain amount of data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename Allocator,
@@ -65200,6 +70695,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -65212,7 +70708,7 @@
   
 [[s][The stream to which the data is to be written. The type must support the SyncWriteStream concept.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -65228,10 +70724,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65243,14 +70741,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 write (6 of 6 overloads)]
 
+
 Write a certain amount of data to a stream before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncWriteStream SyncWriteStream]``,
       typename Allocator,
@@ -65267,6 +70768,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the stream's write\_some function.
@@ -65279,7 +70781,7 @@
   
 [[s][The stream to which the data is to be written. The type must support the SyncWriteStream concept.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -65297,12 +70799,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
@@ -65310,7 +70814,9 @@
 
 [section:write_at write_at]
 
-[indexterm1 write_at] Write a certain amount of data at a specified offset before returning.
+[indexterm1 write_at]
+Write a certain amount of data at a specified offset before returning.
+
       
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
@@ -65385,8 +70891,10 @@
 
 [section:overload1 write_at (1 of 6 overloads)]
 
+
 Write all of the supplied data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
@@ -65401,6 +70909,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65419,10 +70928,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65432,16 +70943,16 @@
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::write_at(d, 42, boost::asio::buffer(data, size));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 [heading Remarks]
       
@@ -65456,14 +70967,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload2 write_at (2 of 6 overloads)]
 
+
 Write a certain amount of data at a specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -65480,6 +70994,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65510,10 +71025,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65523,17 +71040,17 @@
 
 ]
 
+
 [heading Example]
   
-To write a single data buffer use the
-[link boost_asio.reference.buffer buffer] function as follows:
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
    boost::asio::write_at(d, 42, boost::asio::buffer(data, size),
        boost::asio::transfer_at_least(32));
 
 
-See the
-[link boost_asio.reference.buffer buffer] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
 
 
 
@@ -65543,8 +71060,10 @@
 
 [section:overload3 write_at (3 of 6 overloads)]
 
+
 Write a certain amount of data at a specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
@@ -65562,6 +71081,7 @@
 
 * All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65594,20 +71114,24 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 
 
 [section:overload4 write_at (4 of 6 overloads)]
 
+
 Write all of the supplied data at the specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename Allocator>
@@ -65622,6 +71146,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * An error occurred.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65636,14 +71161,16 @@
 
 [[offset][The offset at which the data will be written.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65653,6 +71180,7 @@
 
 ]
 
+
 [heading Remarks]
       
 This overload is equivalent to calling:
@@ -65666,14 +71194,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload5 write_at (5 of 6 overloads)]
 
+
 Write a certain amount of data at a specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename Allocator,
@@ -65690,6 +71221,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65704,7 +71236,7 @@
 
 [[offset][The offset at which the data will be written.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -65720,10 +71252,12 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes transferred.
 
+
 [heading Exceptions]
     
 
@@ -65735,14 +71269,17 @@
 
 
 
+
 [endsect]
 
 
 
 [section:overload6 write_at (6 of 6 overloads)]
 
+
 Write a certain amount of data at a specified offset before returning.
 
+
   template<
       typename ``[link boost_asio.reference.SyncRandomAccessWriteDevice SyncRandomAccessWriteDevice]``,
       typename Allocator,
@@ -65760,6 +71297,7 @@
 
 * All of the data in the supplied basic_streambuf has been written.
 
+
 * The completion_condition function object returns 0.
 
 This operation is implemented in terms of zero or more calls to the device's write\_some\_at function.
@@ -65774,7 +71312,7 @@
 
 [[offset][The offset at which the data will be written.]]
 
-[[b][The basic\_streambuf object from which data will be written.]]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object from which data will be written.]]
 
 [[completion_condition][The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
 ``
@@ -65792,12 +71330,14 @@
 
 ]
 
+
 [heading Return Value]
       
 The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
+
 [endsect]
 
 

Modified: branches/release/libs/asio/doc/reference.xsl
==============================================================================
--- branches/release/libs/asio/doc/reference.xsl (original)
+++ branches/release/libs/asio/doc/reference.xsl 2009-07-13 06:41:04 EDT (Mon, 13 Jul 2009)
@@ -10,6 +10,7 @@
 
 <xsl:output method="text"/>
 <xsl:strip-space elements="*"/>
+<xsl:preserve-space elements="para"/>
 
 
 <xsl:variable name="newline">
@@ -251,11 +252,6 @@
 </xsl:template>
 
 
-<xsl:template match="ref" mode="markup">
-<xsl:apply-templates mode="markup-nested"/>
-</xsl:template>
-
-
 <xsl:template match="title" mode="markup">
   <xsl:variable name="title">
     <xsl:value-of select="."/>
@@ -342,7 +338,7 @@
 </xsl:template>
 
 
-<xsl:template match="emphasis" mode="markup">[*<xsl:value-of select="."/>] </xsl:template>
+<xsl:template match="emphasis" mode="markup">[*<xsl:value-of select="."/>]</xsl:template>
 
 
 <xsl:template match="parameterlist" mode="markup">
@@ -498,10 +494,12 @@
     <xsl:value-of select="."/>
   </xsl:variable>
   <xsl:choose>
- <xsl:when test="contains($name, 'asio::')">
+ <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
+ <xsl:variable name="dox-ref-id" select="@refid"/>
       <xsl:variable name="ref-name">
         <xsl:call-template name="strip-asio-ns">
- <xsl:with-param name="name" select="$name"/>
+ <xsl:with-param name="name"
+ select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
         </xsl:call-template>
       </xsl:variable>
       <xsl:variable name="ref-id">
@@ -509,13 +507,68 @@
           <xsl:with-param name="name" select="$ref-name"/>
         </xsl:call-template>
       </xsl:variable>
-[link boost_asio.reference.<xsl:value-of select="$ref-id"/><xsl:text> </xsl:text><xsl:value-of
- select="$ref-name"/>]</xsl:when>
- <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
+ <xsl:text>[link boost_asio.reference.</xsl:text>
+ <xsl:value-of select="$ref-id"/>
+ <xsl:text> `</xsl:text>
+ <xsl:value-of name="text" select="$ref-name"/>
+ <xsl:text>`]</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>`</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>`</xsl:text>
+ </xsl:otherwise>
   </xsl:choose>
 </xsl:template>
 
 
+<xsl:template match="ref[@kindref='compound']" mode="markup-nested">
+ <xsl:variable name="name">
+ <xsl:value-of select="."/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
+ <xsl:variable name="dox-ref-id" select="@refid"/>
+ <xsl:variable name="ref-name">
+ <xsl:call-template name="strip-asio-ns">
+ <xsl:with-param name="name"
+ select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="ref-id">
+ <xsl:call-template name="make-id">
+ <xsl:with-param name="name" select="$ref-name"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:text>[link boost_asio.reference.</xsl:text>
+ <xsl:value-of select="$ref-id"/>
+ <xsl:text> `</xsl:text>
+ <xsl:value-of name="text" select="$ref-name"/>
+ <xsl:text>`]</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>`</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>`</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="ref[@kindref='member']" mode="markup">
+ <xsl:text>`</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>`</xsl:text>
+</xsl:template>
+
+
+<xsl:template match="ref[@kindref='member']" mode="markup-nested">
+ <xsl:text>`</xsl:text>
+ <xsl:value-of select="."/>
+ <xsl:text>`</xsl:text>
+</xsl:template>
+
+
 <xsl:template name="header-requirements">
   <xsl:param name="file"/>
   <xsl:value-of select="$newline"/>
@@ -562,7 +615,7 @@
   <xsl:variable name="class-file" select="location/@file"/>
 [section:<xsl:value-of select="$class-id"/><xsl:text> </xsl:text><xsl:value-of select="$class-name"/>]
 
-<xsl:value-of select="briefdescription"/><xsl:text>
+<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
 
 </xsl:text>
 
@@ -921,19 +974,22 @@
 <xsl:value-of select="$class-name"/>
 <xsl:text>] </xsl:text>
 
-<xsl:value-of select="briefdescription"/><xsl:text>
+<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
 </xsl:text>
 
 <xsl:for-each select="../memberdef[name = $name]">
 <xsl:if test="position() &gt; 1 and not(briefdescription = preceding-sibling::*/briefdescription)">
   <xsl:value-of select="$newline"/>
- <xsl:value-of select="briefdescription"/>
+ <xsl:apply-templates select="briefdescription" mode="markup"/>
   <xsl:value-of select="$newline"/>
 </xsl:if>
 <xsl:text>
 </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
-<xsl:text> </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:if
- test="string-length(type) > 0"><xsl:value-of select="type"/><xsl:text> </xsl:text>
+<xsl:text> </xsl:text>
+ <xsl:if test="@explicit='yes'">explicit </xsl:if>
+ <xsl:if test="@static='yes'">static </xsl:if>
+ <xsl:if test="string-length(type) > 0">
+ <xsl:value-of select="type"/><xsl:text> </xsl:text>
 </xsl:if>``[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of
  select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text><xsl:value-of
  select="name"/>]``(<xsl:apply-templates select="param"
@@ -970,7 +1026,7 @@
   <xsl:text>] </xsl:text>
 </xsl:if>
 
-<xsl:value-of select="briefdescription"/><xsl:text>
+<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
 </xsl:text>
 
   <xsl:choose>
@@ -1250,12 +1306,12 @@
 <xsl:choose>
   <xsl:when test="count(/doxygen/compounddef[@kind='group' and compoundname=$name]) &gt; 0">
     <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
- <xsl:value-of select="briefdescription"/><xsl:text>
+ <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
       </xsl:text>
     </xsl:for-each>
   </xsl:when>
   <xsl:otherwise>
- <xsl:value-of select="briefdescription"/><xsl:text>
+ <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
     </xsl:text>
   </xsl:otherwise>
 </xsl:choose>
@@ -1296,7 +1352,7 @@
   <xsl:text>] </xsl:text>
 </xsl:if>
 
-<xsl:value-of select="briefdescription"/><xsl:text>
+<xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
 </xsl:text>
 
   <xsl:choose>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk