3

我从未使用过Boost.Functional,只是简要阅读了它的文档。看起来这是对标准 < functional > 标头的改进。

Boost.Functional主页上的一个示例(使用部分)被选为对该库的介绍。使用Boost.Bind(或Boost.Lambda)可以更轻松地完成相同的操作。此外,Boost.Bind是 < functional > 标头中其他工具的绝佳替代品。

我很好奇,Boost.Functional或 STL < functional > 标头中是否有任何Boost.Bind无法完成的内容?或者Boost.Functional的任何其他好处?

4

1 回答 1

2

如果您查看http://www.boost.org/doc/libs/1_47_0/libs/functional/index.html,它会说:

头文件 functional.hpp 提供了对 C++ 标准库(第 20.3.5 节到 20.3.8 节)中指定的函数对象适配器的增强。由于两个变化,这些增强主要是可能的:

  • 我们使用Boost call_traits模板来避免引用引用的问题,提高参数传递的效率。
  • 我们使用两个函数对象特征类模板来避免 ptr_fun 与此库中的适配器的需要。

用法

使用这些适配器应该与使用标准函数对象适配器几乎相同;唯一的区别是你需要写 boost:: 而不是 std::,这样你就不会那么头疼了。

没有人使用“ptr_fun”了(当你有 Boost.Bind 时),所以只剩下处理“对引用的引用”这是否回答了你的问题?

于 2011-11-13T21:17:34.893 回答