已弃用的替代品get_io_service()

时间:2016-09-12 07:51:23

标签: boost-asio

Asio v 1.11。该文档说不推荐使用basic_stream_socket::get_io_service()成员函数,而必须使用get_executor()。但后者返回executor而不是io_service

如何获取对socket使用的io_service对象的引用来构造另一个?

3 个答案:

答案 0 :(得分:2)

您可以使用get_executor().context()

socket newSocket(existingSocket.get_executor().context()));

答案 1 :(得分:1)

从 ASIO v 1.13 开始,新的 I/O 对象可以只使用执行器来构建:

socket new_socket{existing_socket.get_executor()};

答案 2 :(得分:0)

因为我没有足够的声望点来评论,我写一个答案:

使用 get_executor().context() 对我来说并没有立即起作用,但编写宏可以(参见 this answer