boost :: asio和make_shared不起作用?

时间:2011-03-24 21:53:12

标签: boost-asio

除了使用boost asio,我似乎能够在任何地方使用boost :: make_shared?

示例:_ioService = boost :: shared_ptr< io_service>(new io_service)

如果我把它变成:_ioService = boost :: make_shared< io_service>()

我遇到各种错误?

如果我采取同样的问题:
_acceptor = boost :: shared_ptr< tcp :: acceptor>(new tcp :: acceptor(* _ ioService));

并将其转换为:  _acceptor = boost :: make_shared< tcp :: acceptor>(* _ ioService);

1 个答案:

答案 0 :(得分:1)

boost::asio::tcp::acceptor通过非const引用获取boost::asio::io_service时,您需要更改:

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

为:

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