【问题标题】:Assign object the return value of boost::lambda::bind?为对象分配 boost::lambda::bind 的返回值?
【发布时间】:2024-04-19 20:20:02
【问题描述】:

我认为存储绑定的 lambda 函数以供以后使用可能很有用,但我还没有看到任何关于将 boost::lambda::bind 函数的返回值分配给该返回类型的对象的示例。有没有办法干净地做到这一点,还是没有理由这样做?

例子:

boost::lambda::lambda_functor<?> lf = boost::lambda::bind(boost::lambda::constructor<Foo>(), x);

【问题讨论】:

  • 我对Boost.Lambda不熟悉,但是在C++11中可以使用auto
  • 如果你已经在使用 C++11,那么就不需要 boost::lambda; lambda 已经是 C++11 语言的一部分。

标签: c++ boost-lambda


【解决方案1】:

使用 boost.Function 存储函数对象:

boost::function<Foo()> lf = boost::lambda::bind(boost::lambda::constructor<Foo>(), x);

【讨论】:

  • 正是我需要的。谢谢!