套接字创建的Shared_Ptr - 出了什么问题?

时间:2011-04-14 12:16:04

标签: c++ multithreading boost boost-asio shared-ptr

所以我试试:

        boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(io_service);

如上所述here。但它给我带来了一个错误:

编译器告诉我它无法转动(

error C2664: 
boost::asio::basic_stream_socket<Protocol>::basic_stream_socket(
    boost::asio::io_­service &))
'boost::asio::io_service *const ' into 'boost::asio::io_service &'
\include\boost\smart_ptr\make_shared.hpp    

我该怎么办?

1 个答案:

答案 0 :(得分:5)

使用io_service时,您需要传递make_shared作为参考。

boost::shared_ptr<tcp::socket> socket =
            boost::make_shared<tcp::socket>(boost::ref(io_service));