C++11 std::bind 和 boost::bind 的区别

2023-07-20C/C++开发问题
3

本文介绍了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::protectstd::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 use boost::protect with std::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 的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

    The End

相关推荐

无法访问 C++ std::set 中对象的非常量成员函数
Unable to access non-const member functions of objects in C++ std::set(无法访问 C++ std::set 中对象的非常量成员函数)...
2024-08-14 C/C++开发问题
17

从 lambda 构造 std::function 参数
Constructing std::function argument from lambda(从 lambda 构造 std::function 参数)...
2024-08-14 C/C++开发问题
25

STL BigInt 类实现
STL BigInt class implementation(STL BigInt 类实现)...
2024-08-14 C/C++开发问题
3

使用 std::atomic 和 std::condition_variable 同步不可靠
Sync is unreliable using std::atomic and std::condition_variable(使用 std::atomic 和 std::condition_variable 同步不可靠)...
2024-08-14 C/C++开发问题
17

在 STL 中将列表元素移动到末尾
Move list element to the end in STL(在 STL 中将列表元素移动到末尾)...
2024-08-14 C/C++开发问题
9

为什么禁止对存储在 STL 容器中的类重载 operator&()?
Why is overloading operatoramp;() prohibited for classes stored in STL containers?(为什么禁止对存储在 STL 容器中的类重载 operatoramp;()?)...
2024-08-14 C/C++开发问题
6