boost :: asio и make_shared не работает? - PullRequest
1 голос
/ 25 марта 2011

Кажется, я могу использовать boost :: make_shared везде, кроме boost asio?

пример: _ioService = boost :: shared_ptr (новый io_service)

если я превращу это в: _ioService = boost :: make_shared ()

Я получаю все виды ошибок?

Та же проблема, если я возьму:
_acceptor = boost :: shared_ptr (новый tcp :: acceptor (* _ ioService));

и превратить это в это: _acceptor = boost :: make_shared (* _ ioService);

1 Ответ

1 голос
/ 25 марта 2011

Поскольку boost::asio::tcp::acceptor принимает boost::asio::io_service по неконстантной ссылке, вам нужно изменить:

_acceptor = boost::make_shared<tcp::acceptor>(*_ioService);

до:

_acceptor = boost::make_shared<tcp::acceptor>(boost::ref(*_ioService));
...