Difference between C++11 std::bind and boost::bind(C++11 std::bind 和 boost::bind 的区别)
问题描述
这两者有什么区别吗?或者我是否可以安全地在我的代码中用 std::bind
替换每次出现的 boost::bind
,从而消除对 Boost 的依赖?
Is there any difference between the two? Or am I safe to replace every occurrence of boost::bind
by std::bind
in my code and thereby remove the dependence on Boost?
推荐答案
boost::bind
有重载关系运算符,std::bind
没有.boost::bind
支持非默认调用约定,不保证std::bind
(标准库实现可能会将此作为扩展提供).boost::bind
supports non-default calling conventions,std::bind
is not guaranteed to (standard library implementations may offer this as an extension).boost::bind
提供了一种直接机制,允许防止对嵌套绑定表达式(boost::protect
),std::bind
才不是.(也就是说,如果需要,可以将boost::protect
与std::bind
一起使用,或者自己简单地重新实现它.)boost::bind
provides a direct mechanism to allow one to prevent eager evaluation of nested bind expressions (boost::protect
),std::bind
does not. (That said, one can useboost::protect
withstd::bind
if they want, or trivially reimplement it on their own.)std::bind
提供了一种直接机制,允许将任何用户定义的函子视为嵌套的绑定表达式,以便强制急切求值(std::is_bind_expression
: [func.bind.isbind]/1, [func.bind.bind]/10),boost::bind
没有.std::bind
provides a direct mechanism to allow one to treat any user defined functor as a nested bind expression in order to force eager evaluation (std::is_bind_expression
: [func.bind.isbind]/1, [func.bind.bind]/10),boost::bind
does not.这篇关于C++11 std::bind 和 boost::bind 的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C++11 std::bind 和 boost::bind 的区别


基础教程推荐
- Windows Media Foundation 录制音频 2021-01-01
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 从 std::cin 读取密码 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07