使用std :: shared_ptr而不是boost :: shared_ptr时编译失败

sl

下面的代码成功地将异步消息发送到给定的端点。

// message is a boost::shared_ptr<std::string>

// open a UDP socket
boost::asio::ip::udp::socket socket(ioService);
socket.open(boost::asio::ip::udp::v4());

// create the remote endpoint
boost::asio::ip::udp::endpoint remoteEndpoint(boost::asio::ip::address_v4::from_string(address), port);

// asynchronously send a datagram to the remote endpoint
socket.async_send_to(boost::asio::buffer(*message),
                     remoteEndpoint,
                     boost::bind(&MyClass::handler,
                                 this,
                                 message,
                                 boost::asio::placeholders::error,
                                 boost::asio::placeholders::bytes_transferred));

socket.close();

但是,如果我将类型更改message为astd::shared_ptr<std::string>而不是a,boost::shared_ptr<std::string>则对的调用async_send_to不会编译。

错误是:

boost/boost/bind/bind.hpp:457:9: No matching function for call to object of type 'boost::_mfi::mf3<void, MyClass, const boost::shared_ptr<std::__1::basic_string<char> > &, const boost::system::error_code &, unsigned long>'.

有人可以解释什么地方不对吗?可能是因为我在使用boost :: bind吗?

永远

看起来问题是,您的handler函数从接收boost::shared_ptr,而不是std::shared_ptrboost::shared_ptr不可构造std::shared_ptr

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我可以用std :: shared_ptr而不是boost :: shared_ptr构建Boost库

来自分类Dev

std set of boost :: shared_ptr <string>

来自分类Dev

如何在boost :: object_pool中使用boost :: shared_ptr / std :: shared_ptr?

来自分类Dev

如何在boost :: object_pool中使用boost :: shared_ptr / std :: shared_ptr?

来自分类Dev

使用boost :: shared_ptr <std :: list <T >>初始化boost :: shared_ptr <std :: vector <T >>

来自分类Dev

使用std :: move与std :: shared_ptr

来自分类Dev

在BST中使用unique_ptr而不是shared_ptr

来自分类Dev

QVariant与std :: shared_ptr

来自分类Dev

QVariant与std :: shared_ptr

来自分类Dev

使用* this作为std :: shared_ptr

来自分类Dev

使用* this作为std :: shared_ptr

来自分类Dev

使用shared_ptr和make_shared时出现奇怪的编译器错误

来自分类Dev

使用模板将std :: shared_ptr <Derived>上载到std :: shared_ptr <Base>

来自分类Dev

使用boost :: shared_ptr <derived>调用时,函数在bool和boost :: shared_ptr <base>之间重载歧义

来自分类Dev

C ++ 11 std :: shared_ptr工作正常,但是boost :: shared_ptr崩溃了,这是什么原因引起的?

来自分类Dev

为什么std :: shared_ptr <T> = std :: unique_ptr <T []>编译,而std :: shared_ptr <T []> = std :: unique_ptr <T []>不编译?

来自分类Dev

std :: shared_ptr在复制对象时引起问题

来自分类Dev

生成std :: thread时的shared_ptr参考计数

来自分类Dev

使用std shared_ptr作为std :: map键

来自分类Dev

使用(和导出)boost :: shared_ptr <T>时出现错误C2562

来自分类Dev

使用std :: shared_ptr和std :: thread的编译器错误

来自分类Dev

使用std :: shared_ptr和std :: thread的编译器错误

来自分类Dev

std :: shared_ptr和继承

来自分类Dev

std :: shared_ptr深层复制对象

来自分类Dev

std :: function和shared_ptr

来自分类Dev

数据与memcpy的std :: shared_ptr分配

来自分类Dev

std :: shared_ptr预分配内存

来自分类Dev

可重用的std :: shared_ptr

来自分类Dev

std :: shared_ptr深层复制对象

Related 相关文章

  1. 1

    我可以用std :: shared_ptr而不是boost :: shared_ptr构建Boost库

  2. 2

    std set of boost :: shared_ptr <string>

  3. 3

    如何在boost :: object_pool中使用boost :: shared_ptr / std :: shared_ptr?

  4. 4

    如何在boost :: object_pool中使用boost :: shared_ptr / std :: shared_ptr?

  5. 5

    使用boost :: shared_ptr <std :: list <T >>初始化boost :: shared_ptr <std :: vector <T >>

  6. 6

    使用std :: move与std :: shared_ptr

  7. 7

    在BST中使用unique_ptr而不是shared_ptr

  8. 8

    QVariant与std :: shared_ptr

  9. 9

    QVariant与std :: shared_ptr

  10. 10

    使用* this作为std :: shared_ptr

  11. 11

    使用* this作为std :: shared_ptr

  12. 12

    使用shared_ptr和make_shared时出现奇怪的编译器错误

  13. 13

    使用模板将std :: shared_ptr <Derived>上载到std :: shared_ptr <Base>

  14. 14

    使用boost :: shared_ptr <derived>调用时,函数在bool和boost :: shared_ptr <base>之间重载歧义

  15. 15

    C ++ 11 std :: shared_ptr工作正常,但是boost :: shared_ptr崩溃了,这是什么原因引起的?

  16. 16

    为什么std :: shared_ptr <T> = std :: unique_ptr <T []>编译,而std :: shared_ptr <T []> = std :: unique_ptr <T []>不编译?

  17. 17

    std :: shared_ptr在复制对象时引起问题

  18. 18

    生成std :: thread时的shared_ptr参考计数

  19. 19

    使用std shared_ptr作为std :: map键

  20. 20

    使用(和导出)boost :: shared_ptr <T>时出现错误C2562

  21. 21

    使用std :: shared_ptr和std :: thread的编译器错误

  22. 22

    使用std :: shared_ptr和std :: thread的编译器错误

  23. 23

    std :: shared_ptr和继承

  24. 24

    std :: shared_ptr深层复制对象

  25. 25

    std :: function和shared_ptr

  26. 26

    数据与memcpy的std :: shared_ptr分配

  27. 27

    std :: shared_ptr预分配内存

  28. 28

    可重用的std :: shared_ptr

  29. 29

    std :: shared_ptr深层复制对象

热门标签

归档