微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用std :: bind并存储到std ::函数中

如何解决使用std :: bind并存储到std ::函数中

我正在尝试使用std :: bind绑定到一个函数并将其存储到我的std :: function回调对象中。我编写的代码是我实际代码的简化版本。下面的代码无法编译,

_1未在范围中声明

注意:我知道可以使用lambda来完成。但是,函数处理程序已经存在,需要使用,否则我需要在lambda内部调用该处理程序。

symbol

解决方法

占位符_1_2_3 ...放在命名空间std::placeholders中,您应该像这样对其进行限定

Callback c = std::bind(handler,std::placeholders::_1);

using namespace std::placeholders;
Callback c = std::bind(handler,_1);
,

占位符位于std名称空间的自己的名称空间中。 添加using namespace std::placeholders或使用std::placeholders::_1

很好的例子:std::placeholders::_1,std::placeholders::_2,...,std::placeholders::_N

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。