【问题标题】:boost::asio and make_shared does not work?boost::asio 和 make_shared 不起作用?
【发布时间】:2011-07-22 12:20:37
【问题描述】:

除了 boost asio 之外,我似乎可以在任何地方使用 boost::make_shared?

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

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

我得到各种各样的错误?

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

然后把它变成这样: _acceptor = boost::make_shared<:acceptor>(*_ioService);

【问题讨论】:

    标签: boost-asio


    【解决方案1】:

    由于boost::asio::tcp::acceptor 通过非常量引用获取boost::asio::io_service,您需要更改:

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

    到:

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

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2013-01-30
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多