2011-03-24 88 views
1

我似乎可以使用boost :: make_shared除了使用boost asio嗎?boost :: asio和make_shared不起作用?

例如:_ioService =提高:: shared_ptr的< io_service對象>(新io_service對象)

,如果我把它變成:_ioService =提振:: make_shared < io_service對象>()

我得到的各種錯誤?

,如果我拿同樣的問題:
_acceptor =提高:: shared_ptr的< TCP ::受體>(新TCP ::受體(* _的IOService));

並把它變成這樣: _acceptor =升壓:: make_shared < TCP ::受體>(* _ioService);

回答

1

由於boost::asio::tcp::acceptor需要boost::asio::io_service通過非const引用您需要更改:

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

到:

_acceptor = boost::make_shared<tcp::acceptor>(boost::ref(*_ioService)); 
相關問題