问题标签 [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 回答
175 浏览

c++ - 在堆上生成对象的函数式编程技术

有在堆上生成 N 类 A 对象的代码示例:

代码使用仿函数“Generator”和“generate_n”算法来完成这项工作。我很想简化这项任务。boost:lambda, boost::phoenix 是可能的候选者(如果是的话?),怎么做?或者也许还有其他选择?

0 投票
3 回答
419 浏览

c++ - 将 boost::lambda 与 STL 容器一起使用

完整代码在https://gist.github.com/1341623

我想对另一个向量的索引数组(或向量)进行排序,以便数组按另一个向量的索引排序。但是,vector::at 的类型无法解析。

我做了如下尝试:

还行吧

我想根据数组对索引进行排序,但占位符不会重载 operator[]

但是,它们重载了 operator+ 和 operator*

我想根据向量对索引进行排序,但编译器无法解析“vector::at”的类型。

在网上搜索后,我发现我必须指定重载的方法类型,但编译器仍然说它无法解析类型。

我试图获得我想要的 vector::at 版本,但转换似乎失败了。

我可以为这个问题做些什么?还是我误解了什么?

0 投票
2 回答
1859 浏览

c++ - boost::bind、boost::lambda::bind 和 boost::phoenix::bind 之间的区别

我试图了解这些不同绑定方法之间的区别。boost::bind 和 boost::phoenix::bind也有类似的问题

但是,如果有人可以用例子来解释这一点,那就太好了。boost::phoenix 是否真的是 boost::bind、booost::lambda 库的超集?

0 投票
2 回答
361 浏览

c++ - C++ boost lambda 和 ==-operator 的问题

有:

和:

然后我有这个电话(哪些错误):

worms()返回一个Ref<Iterator<CWorm*> Ref>并且存在int CWorm::getID();(这是一个成员函数)。

这将失败,并出现关于二进制表达式的无效操作数的非常冗长的错误。一部分:

/usr/local/include/boost/lambda/detail/operator_lambda_func_base.hpp:222:1:{222:1-222:63}{222:1-222:63}:错误:二进制表达式的操作数无效('typename lambda_functor_base >, tuple >, int (CWorm::*const)() const, null_type, null_type, null_type, null_type, null_type, null_type, null_type, null_type> >::sig >::type'(又名'member_pointer_caller')和'int') [3]

为什么?

我该如何解决?

如果我做得更详细一些,即不是通过 lambdas,而是我手动声明另一个函数并使用boost::bind,它就可以工作。即像这样:

0 投票
1 回答
585 浏览

boost - Boost.Lambda - 取消引用占位符

有没有办法取消引用 lambda 表达式中的占位符?

我知道我可以进行绑定:

,但我想用 if 语句等构建更复杂的表达式。

0 投票
1 回答
500 浏览

c++ - MSVC 和 boost::lambda::bind 错误:T0:标准参数不允许

此代码可以使用 GCC 和 Clang 编译,但不能使用 MSVC 2010:

给出错误:

(题外话:我怎样才能得到英文的错误?)

使用&eventStart代替也不起作用,但错误是不同的:

为什么?代码似乎正确。

当我删除函数的默认参数时它会eventStart起作用。

0 投票
1 回答
537 浏览

c++ - boost::lambda std::map

我想通过使用 boost::lambda 来简化我的代码。这是我的代码:

最后这是产生的错误代码:

错误 C2664:“Tools::Serilizer::makePair”:无法将参数 2 从“const boost::lambda::lambda_functor”转换为“const Tools::Serilizer::Serilizable &”

任何提示如何解决这个问题?

0 投票
1 回答
287 浏览

c++ - 将 boost lambda 与复合表达式一起使用

我有一个 Visual Studio 2008 C++03 应用程序,我想在其中使用 boost::lambda 来执行此操作:

不幸的是,这不起作用:

什么是让 boost::lambda 执行复合表达式的正确方法?我需要绑定 != 运算符吗?

谢谢

0 投票
2 回答
1112 浏览

c++ - 如何使用 Boost (Lambda?) 使 std::sort() 更容易?

假设我有

如果我想在 C++03 中对一堆Value索引进行排序,我必须写一些像这样乏味的东西:

有没有办法用 Boost(也许用 Boost.Lambda)更简洁地写这个,最好是在 1 行中?

0 投票
1 回答
1018 浏览

boost - 如何在 c++ 模板中使用 boost::is_same 以及 boost::lambda::bind

我正在尝试将泛型连接boost::function<void(void)>到许多不同签名的 boost::signals2 。我可以使用 boot::lambda::bind 通过将返回值作为绑定参数的一部分传递来执行绑定部分,但是当返回类型为 void 时会出现问题

例子:

我不断收到编译错误

从错误中可以看出,带有 boost::is_void 的 if 条件(boost::is_same 也不是)似乎不起作用,有人知道为什么吗?有没有更好的方法来做这个绑定?

谢谢,萨克