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 现在提供了“C++ 网络扩展”技术规范中指定接口和功能。除了通过常规的 Boost.Asio 头文件访问外,还可以通过与 TS 中定义的头文件对应的特殊头文件来访问此功能。这些在下表中列出:
网络 TS 头文件 |
Boost.Asio 头文件 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
在某些情况下,新的网络 TS 兼容接口取代了旧的 Boost.Asio 设施。在这些情况下,旧接口已被弃用。下表显示了新的网络 TS 接口及其取代的设施:
新接口 |
旧接口 |
注意 |
---|---|---|
|
|
|
|
free 函数 |
|
|
free 函数 |
|
当 |
free 函数 |
|
接受 |
不需要 |
|
接受 |
不需要 |
|
接受 |
不需要 |
|
接受 |
不需要 |
|
|
这些函数增加了运行 |
|
|
||
|
|
|
|
|
与服务相关的函数已移至 |
|
||
此模板适用于任何有效的执行器,并且本身也是一个有效的执行器。 |
||
|
工作跟踪现在由 Executor 要求覆盖。这些模板适用于任何有效的执行器。 |
|
|
这些模板适用于任何有效的执行器。 |
|
带有 |
带有单个参数的 |
|
|
处理程序调用 hook 已被新的 Executor 要求和相关的执行器 trait 取代。 |
|
|
处理程序分配 hook 已被标准的 Allocator 要求和相关的分配器 trait 取代。 |
|
|
||
针对单个缓冲区的 |
|
|
|
ConstBufferSequence 要求已修改,因此 |
|
|
MutableBufferSequence 要求已修改,因此 |
|
(以及定时器、串口等 I/O 对象的相应成员) |
|
使用 |
|
||
|
|
用于响应式 I/O 的操作。 |
|
|
使用 move 语义,因此需要 C++11 或更高版本。要将连接接受到不同 |
|
|
使用 move 语义,因此需要 C++11 或更高版本。要将连接接受到不同 |
接受范围的 |
接受单个迭代器的 |
|
接受范围的 |
接受单个迭代器的 |
|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
接受 |
不需要 |
|
接受 |
不需要 |
|
接受 |
不需要 |
|
|
||
|
||
|
||
|
||
|
||
接受 |
不需要 |
|
接受 |
不需要 |
|
接受 |
不需要 |
|
无替换 |
|
|
|
|
|
|
||
|
||
|
||
|
解析器现在生成范围而不是单个迭代器。 |
|
接受主机名和服务作为参数的 |
接受 |
|
|
|
|
接受主机名和服务作为参数的 |
接受 |
|
|
|