Shared_Ptr создания сокета - что не так? - PullRequest
2 голосов
/ 14 апреля 2011

Итак, я стараюсь:

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

Как описано здесь . Но это приносит мне ошибку:

Компилятор говорит мне, что он не может включиться (

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 Ответ

5 голосов
/ 14 апреля 2011

Вам необходимо передать io_service в качестве ссылки при использовании make_shared.

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