C++ 创建套接字的共享\u Ptr-有什么问题?

C++ 创建套接字的共享\u Ptr-有什么问题?,c++,multithreading,boost,boost-asio,shared-ptr,C++,Multithreading,Boost,Boost Asio,Shared Ptr,所以我试着: boost::shared_ptr<tcp::socket> socket = boost::make_shared<tcp::socket>(io_service); boost::共享ptr套接字= boost::使_共享(io_服务); 如上所述。但这给我带来了一个错误: 编译器告诉我它不能转( 错误C2664: boost::asio::basic\u stream\u socket::basic\u st

所以我试着:

        boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(io_service);
boost::共享ptr套接字=
boost::使_共享(io_服务);
如上所述。但这给我带来了一个错误:

编译器告诉我它不能转(

错误C2664:
boost::asio::basic\u stream\u socket::basic\u stream\u socket(
boost::asio::io(服务&)
将“boost::asio::io_service*const”改为“boost::asio::io_service&”
\包括\boost\smart\u ptr\make\u shared.hpp

我该怎么办?

使用
共享
时,您需要将
io\u服务作为参考

boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(boost::ref(io_service));
boost::共享ptr套接字=
boost::使_共享(boost::ref(io_服务));

向我们展示您的io_服务声明?
boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(boost::ref(io_service));