gpt4 book ai didi

c++ - 使用 boost::bind 有什么好处?

转载 作者:行者123 更新时间:2023-12-05 03:37:48 26 4
gpt4 key购买 nike

boost::bind 的定义和应用在the boost website 中有清楚的概述。 ,但我几乎找不到使用它比使用普通函数调用有什么好处?或者简单说在哪些场景下会派上用场?

最佳答案

有时您有一组要传递给函数的参数,但您希望稍后调用函数而不需要传递已知参数。需要这个的一个原因可能是因为调用可能需要符合不允许这些参数的接口(interface)。这是典型的(仿函数风格)“回调”习语。

这种情况可以通过定义一个类来解决,该类将参数存储为成员,并定义函数调用运算符重载,该重载委托(delegate)给原始函数并传递存储为成员的参数。

boost::bind 是一种表示此类“参数绑定(bind)”的结构化方式,无需您自己定义类。标准库曾经有 std::bind1ststd::bind2nd,它们是更有限、更不通用的 bind 形式。

boost::bind 很少再需要了,因为它在 C++11 中作为 std::bind 被引入标准库,此外 lambda 被引入C++11 和 C++14 中的改进,它们在很大程度上已经废弃了 bind

关于c++ - 使用 boost::bind 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69170436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com