【发布时间】:2009-08-14 14:25:35
【问题描述】:
Boost::bind 和 Boost Phoenix::bind 有什么区别?
【问题讨论】:
标签: c++ boost boost-phoenix
Boost::bind 和 Boost Phoenix::bind 有什么区别?
【问题讨论】:
标签: c++ boost boost-phoenix
phoenix::bind 就像lambda::bind 一个函数,它返回一个表达式模板,记录它必须调用给定函数。它们被设计为分别与 phoenix 和 lambda 一起工作。结果,它们包含更多的东西。就像,它们返回的类型重载了所有可能的运算符,以便以后可以记录和执行它们各自的操作。
boost::bind“只是”一个活页夹。它将绑定函数,并返回一个函数调用运算符重载的类型,仅此而已。
【讨论】:
phoenix::bind 是 compatible 和 boost::bind。请记住 litb 在这里的回应,这意味着您可以在以前使用 boost::bind 的地方使用 phoenix::bind,但我认为它不能反过来工作(您不能在 lambda 中使用 boost::bind并期望它像phoenix::bind一样工作。