除了使用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);
答案 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));