问题标签 [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.
c++ - 为对象分配 boost::lambda::bind 的返回值?
我认为存储一个绑定的 lambda 函数以供以后使用可能很有用,但我还没有看到任何关于将boost::lambda::bind
函数的返回值分配给该返回类型的对象的示例。有没有办法干净地做到这一点,还是没有理由这样做?
例子:
c++ - 使用 boost::lambda::bind 有什么问题?
我试图用它boost::lambda::bind()
来定义一个我传递给find_if
Boost.Range 算法的谓词。具体来说,我想搜索结构向量以查找特定成员具有指定值的第一个条目。我的例子如下:
当我尝试编译它时(在gcc
4.7.2 下),我得到了典型的模板实例化错误,表明没有operator==
找到与返回的类型兼容bind()
的const char []
. 我也尝试过使用其他类型,例如int
,结果相同。
我一定遗漏了一些bind()
使用的小细节,但我看不到;似乎这种事情应该根据文档起作用。我错了吗?
编辑:这是编译器输出的第一部分:
c++ - 使用 boost::bind 将回调发布到任务队列
假设我有一个subscribe()
调用函数,它接受一个回调处理程序,当事件被触发时将调用它。
现在,我有另一个版本,称为subscribe2()
. 一切都是一样的,只是在触发时,它需要将其发布到事件队列中。它是使用原始实现的subscribe()
,带有一个名为 的辅助函数helper()
。它所做的只是将原始处理程序和任何其他参数绑定到仿函数中,然后调用postToEventQueue()
.
现在,我想知道有没有办法消除辅助函数,这样subsribe2()
我就可以以某种方式直接将函数和原始回调处理程序打包,postToTaskQueue()
并将其传递给 subscribe()
原因是我有很多不同的处理程序类型,到处引入辅助函数很乏味和累人。毕竟, boost::bind 应该在给定原始函数的情况下返回一个新函数,对吗?我正在尝试使用 boost::bind 直接生成辅助函数。
一种尝试是说
在subscribe2()
,但它不起作用。有可能吗?
请参阅下面的详细示例代码。谢谢!
boost-lambda - 使用 std::find_if 提升 lambda 无法编译
考虑某个类的这个模板成员方法:
编译器给出了这个错误(除了数百个模板错误):
该类型SLnAdjW
是具有自由定义 == 运算符函数的 POD C 结构。
我在这里做错了什么?
c++ - 如何编写 boost::lambda 表达式作为函数回调参数
假设我有以下代码:
编译器错误是:
在我的情况下,编写 boost lambda 表达式的正确方法是什么?
c++ - Boost.Lambda 和 Boost.Function 不能很好地与 Boost.Array 配合使用,为什么?
我在使用 Boost 时遇到了非常令人沮丧的问题。
当我尝试运行一些简单的东西时
我回来了:
为什么会出现这个错误,我该如何让 Boost.Lambda 做我需要的事情?
(是的,我知道我也可以使用 Boost.Phoenix 等人,但这不是问题的重点。)
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++ 错误:
任何帮助,将不胜感激,
谢谢
c++ - 提升 lambda 函数调用
我正在学习 boost lambda(不是 c++0X lambda,因为我猜它们是不同的)。但是如果唯一的输入参数是调用对象,我无法在线找到调用成员函数(然后输出结果)的方法。我的意思是这条线有效:
如果vecCt是vector
. int
但是如果 vecCt 是一个vector
of MyClass
,它有一个调用函数getName
来返回一个字符串呢?这都不是:
也不是这个:
作品。
我在网上搜索,但很多结果建议在调用成员函数时使用绑定。现在我知道了
使我能够调用getName
传递给 int 的每个对象,但是如何将此输出传递给 cout?这不起作用:
c++ - 返回常量的 boost 绑定或 lambda 仿函数
我可以使用 boost::bind 或 boost lambda 库来创建一个忽略其参数并始终返回一个常量的仿函数吗?
例如,具有与以下行为等效的函子: