与Boost.Bind相比,Boost.Functional有什么好处?

时间:2011-11-13 21:02:42

标签: c++ boost boost-bind boost-functional

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

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

我很好奇,有什么来自 Boost.Functional 或STL< 功能> Boost.Bind 无法完成的标头?或 Boost.Functional 的任何其他好处?

1 个答案:

答案 0 :(得分: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时),所以只留下处理“对引用的引用” 这会回答你的问题吗?