问题标签 [boost-lambda]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
204 浏览

c++ - 为对象分配 boost::lambda::bind 的返回值?

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

例子:

0 投票
1 回答
713 浏览

c++ - 使用 boost::lambda::bind 有什么问题?

我试图用它boost::lambda::bind()来定义一个我传递给find_ifBoost.Range 算法的谓词。具体来说,我想搜索结构向量以查找特定成员具有指定值的第一个条目。我的例子如下:

当我尝试编译它时(在gcc4.7.2 下),我得到了典型的模板实例化错误,表明没有operator==找到与返回的类型兼容bind()const char []. 我也尝试过使用其他类型,例如int,结果相同。

我一定遗漏了一些bind()使用的小细节,但我看不到;似乎这种事情应该根据文档起作用。我错了吗?

编辑:这是编译器输出的第一部分:

0 投票
1 回答
171 浏览

c++ - boost::lambda 中 boost::bind 的嵌套使用不起作用

0 投票
2 回答
1111 浏览

c++ - 使用 boost::bind 将回调发布到任务队列

假设我有一个subscribe()调用函数,它接受一个回调处理程序,当事件被触发时将调用它。

现在,我有另一个版本,称为subscribe2(). 一切都是一样的,只是在触发时,它需要将其发布到事件队列中。它是使用原始实现的subscribe(),带有一个名为 的辅助函数helper()。它所做的只是将原始处理程序和任何其他参数绑定到仿函数中,然后调用postToEventQueue().

现在,我想知道有没有办法消除辅助函数,这样subsribe2()我就可以以某种方式直接将函数和原始回调处理程序打包,postToTaskQueue()并将其传递给 subscribe()原因是我有很多不同的处理程序类型,到处引入辅助函数很乏味和累人。毕竟, boost::bind 应该在给定原始函数的情况下返回一个新函数,对吗?我正在尝试使用 boost::bind 直接生成辅助函数。

一种尝试是说

subscribe2(),但它不起作用。有可能吗?

请参阅下面的详细示例代码。谢谢!

0 投票
0 回答
185 浏览

boost-lambda - 使用 std::find_if 提升 lambda 无法编译

考虑某个类的这个模板成员方法:

编译器给出了这个错误(除了数百个模板错误):

该类型SLnAdjW是具有自由定义 == 运算符函数的 POD C 结构。

我在这里做错了什么?

0 投票
1 回答
454 浏览

c++ - 如何编写 boost::lambda 表达式作为函数回调参数

假设我有以下代码:

编译器错误是:

在我的情况下,编写 boost lambda 表达式的正确方法是什么?

0 投票
1 回答
91 浏览

c++ - Boost.Lambda 和 Boost.Function 不能很好地与 Boost.Array 配合使用,为什么?

我在使用 Boost 时遇到了非常令人沮丧的问题。

当我尝试运行一些简单的东西时

我回来了:

为什么会出现这个错误,我该如何让 Boost.Lambda 做我需要的事情?

(是的,我知道我也可以使用 Boost.Phoenix 等人,但这不是问题的重点。)

0 投票
1 回答
373 浏览

c++ - 无法转换 boost::lambda::placeholder1_type

我正在尝试使用 boost::lambda,但遇到了一个错误,我无法弄清楚如何解决。

我觉得这是一个初学者的错误,所以请原谅我的无知(而且,我不得不承认,我也懒惰地没有阅读整个 boost lamda 文档)。

似乎在某些情况下使用 boost::bind(或者 boost::lambda::bind?),比 boost::lambda 更适合,但我不确定它是否可以在这里应用。我不想为 编写单独的函数if cond(arg1) arg2.insert(arg1) ;,因为它会破坏目的;我猜它不会比函子好多少。

我在工作中使用带有 VC9 的 boost 1.35。错误位于cond()insert()调用站点:“C2664:无法从 'boost::lambda::placeholder1_type”转换参数 1

我在我的 cygwin 上用 g++ 复制了这个片段的问题。

g++ 错误:

任何帮助,将不胜感激,

谢谢

0 投票
1 回答
750 浏览

c++ - 提升 lambda 函数调用

我正在学习 boost lambda(不是 c++0X lambda,因为我猜它们是不同的)。但是如果唯一的输入参数是调用对象,我无法在线找到调用成员函数(然后输出结果)的方法。我的意思是这条线有效:

如果vecCt是vector. int但是如果 vecCt 是一个vectorof MyClass,它有一个调用函数getName来返回一个字符串呢?这都不是:

也不是这个:

作品。

我在网上搜索,但很多结果建议在调用成员函数时使用绑定。现在我知道了

使我能够调用getName传递给 int 的每个对象,但是如何将此输出传递给 cout?这不起作用:

0 投票
2 回答
292 浏览

c++ - 返回常量的 boost 绑定或 lambda 仿函数

我可以使用 boost::bind 或 boost lambda 库来创建一个忽略其参数并始终返回一个常量的仿函数吗?

例如,具有与以下行为等效的函子: