...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Boost.Asio now provides the interfaces and functionality specified by the "C++ Extensions for Networking" Technical Specification. In addition to access via the usual Boost.Asio header files, this functionality may be accessed through special headers that correspond to the header files defined in the TS. These are listed in the table below:
Networking TS header |
Boost.Asio header |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
In some cases the new Networking TS compatible interfaces supersede older Boost.Asio facilities. In these cases the older interfaces have been deprecated. The table below shows the new Networking TS interfaces and the facilities they replace:
New interface |
Old interface |
Notes |
---|---|---|
The name |
||
The |
||
The |
||
|
The |
|
|
The |
|
|
The |
|
|
The |
|
|
The |
|
|
These functions add the ability to run an |
|
|
The service-related functionality has been moved to the |
|
This template works with any valid executor, and is itself a valid executor. |
||
Work tracking is now covered by the Executor requirements. These templates work with any valid executor. |
||
These templates work with any valid executor. |
||
|
|
The |
The handler invocation hook has been replaced by the new Executor requirements and the associated executor traits. |
||
The handler allocation hooks have been replaced by the standard Allocator requirements and the associated allocator traits. |
||
|
|
|
The ConstBufferSequence
requirements have been modified such that |
||
The MutableBufferSequence
requirements have been modified such that |
||
|
Use |
|
|
Operations for reactive I/O. |
|
|
|
Uses move support so requires C++11 or later. To accept a connection
into a socket object on a different |
|
|
Uses move support so requires C++11 or later. To accept a connection
into a socket object on a different |
|
|
The |
|
|
The |
|
||
|
||
|
The |
|
|
The |
|
|
The |
|
|
||
|
The |
|
|
The |
|
|
The |
|
No replacement |
|
|
|
The |
|
The |
||
The |
||
The |
||
Resolvers now produce ranges rather than single iterators. |
||
|
|
|
|
|
|
|
|
|
|
|