1
votes

I seem to be able to use boost::make_shared everywhere except with boost asio?

example: _ioService = boost::shared_ptr<io_service>(new io_service)

if I turn this into: _ioService = boost::make_shared<io_service>()

I get all kinds of errors?

Same problem if I take:
_acceptor = boost::shared_ptr<tcp::acceptor>(new tcp::acceptor(*_ioService));

and turn it into this: _acceptor = boost::make_shared<tcp::acceptor>(*_ioService);

1

1 Answers

1
votes

As boost::asio::tcp::acceptor takes a boost::asio::io_service by non-const reference you need to change:

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

to:

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