问题标签 [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 投票
3 回答
4660 浏览

c++ - c++ boost lambda 库

使用 boost lambda 库开始编程的最佳方式可能是什么。

0 投票
2 回答
1249 浏览

c++ - Boost phoenix 或 lambda 库问题:从 std::vector 中删除元素

我最近遇到了一个问题,我认为 boost::lambda 或 boost::phoenix 可以帮助解决,但我无法正确使用语法,所以我用了另一种方式。我想要做的是删除“字符串”中小于一定长度而不是另一个容器中的所有元素。

这是我的第一次尝试:

我最终是如何做到的:

0 投票
6 回答
1516 浏览

c++ - boost lambda 或 phoenix 问题:使用 std::for_each 对容器的每个元素进行操作

我在清理一些旧代码时遇到了问题。这是功能:

我感兴趣的是将 for 循环清理为 lambda 表达式,但很快就陷入了如何将正确的参数传递给 get_connectivity_data 的问题。get_connectivity_data 通过引用获取 std::vector 并用一些数据填充它。输出包含每个“块”的 std::vector。

基本上我的结论是,让我的代码保持原样更容易、更简洁、更短。

编辑:

因此,正如我所设想的那样,对我的问题最接近的答案是:

然而该代码无法编译,我对代码进行了一些修改以使其编译,但我遇到了 2 个问题:

  1. _ 1 是一个智能 ptr,std::distance 对它不起作用,我想我需要使用 &chunks[0] 作为开始
  2. 由于 _ 1 是一个智能指针,我不得不这样做: &chunk_vec_t::value_ type::ValueType::get_connectivity_data 导致 VC9 编译器崩溃...

关于 zip_ 迭代器的答案看起来不错,直到我进一步阅读并发现对于这种特定用途,所需的额外代码量很大(绑定这个和那个等)。

编辑2:

我找到了一个可接受的解决方案,它的无关语法低且清晰,我在此处和下面发布了该解决方案。

0 投票
5 回答
1411 浏览

c++ - Boost.Lambda:插入不同的数据结构

我有一个vector我想插入到set. 这是三个不同的调用之一(另外两个更复杂,涉及boost::lambda::if_()),但解决这个简单的案例将帮助我解决其他问题。

不幸的是,这会失败并显示转换错误消息(尝试转换boost::lambda::placeholder1_typestd::string)。

所以……这有什么问题?

0 投票
2 回答
405 浏览

c++ - 增强 lambda 困惑

为什么回调只调用一次?

0 投票
1 回答
340 浏览

c++ - 提升 lambda 集合大小评估

我有一个形式的功能:

这个函数做一些工作并且只在条件为真时返回。该条件已表示为函子参数,因为我想在不同的调用站点提供不同的条件。

现在,直接使用它相当简单,但它需要声明许多小的一次性函数或仿函数对象,如果可能的话,我想避免这些。我一直在研究 Boost 的 lambda 库,以寻找消除这些问题的可能方法,但我认为我缺少一些基本的东西;我只是不能让它做我想做的事。

目前让我感到难过的一个案例是:我有一个std::vector名为data;的集合。我所追求的条件是当该size()集合达到某个阈值时。那么,本质上,我希望我的condition仿函数在何时返回真data.size() >= threshold,否则返回假。但我一直无法用 lambda 语法表达它。

到目前为止,我能想到的最好的(至少可以编译,尽管它不起作用)是这样的:

在进入 时DoSomething,大小为 0——即使在运行过程中大小增加,对 的调用condition()似乎总是大小为 0。跟踪它(通过 Boost 的内部机制有点棘手),而它确实似乎在greater_equal每次condition()评估时都在调用,它似乎没有在调用size().

那么我完全搞砸了什么基本的事情?有没有一种更简单的方式来表达这种事情(同时仍然尽可能保持代码内联)?

理想情况下,我希望它尽可能接近 C# 等效代码流畅度:

0 投票
3 回答
890 浏览

c++ - 问题嵌套 boost::lambda::bind-s

我有一个通用功能:

我可以成功调用:

然后,我需要将它们全部替换为一种格式,而不是向缩略图中添加一定数量的某种格式。更准确地说,使用 1 个元素的列表,如下所示:

这导致“boost/lambda/detail/actions.hpp(96) : error C2665: 'boost::lambda::function_adaptor::apply' : 2 个重载都不能转换所有参数类型”。

我在这里做错了什么?

顺便提一句

0 投票
1 回答
334 浏览

c++ - 使用 boost::lambda_ 压缩字符串中的空格

我正在使用 boost::lambda 删除字符串中的后续空格,只留下一个空格。我试过这个程序。

注释的行工作正常,但未注释的行不行。

怎么

不同于

在上述节目中。评论的人还给了我一个警告,“警告 C4805:'==':'bool' 类型和 'const char' 类型在操作中的不安全混合”

谢谢。

0 投票
1 回答
163 浏览

boost - boost::lambda::ll 在哪里?

我似乎无法在 boost_1_39_0 发行版的任何头文件中找到嵌套的 ll::for_each() 调用的 boost::lambda::ll 。有人能指出我正确的方向吗?谢谢。

0 投票
1 回答
2603 浏览

c++ - C++:如何使用 std::less使用 boost::bind 和 boost::lambda?

我正在尝试精简 boost::bind、boost::lambda 库以及它们如何与 STL 算法一起使用。假设我有按 int 键排序的 int-string 对向量。然后可以找到在保持向量排序的同时插入新对的位置,如下所示:

现在我想operator<用一个函数对象(std::less<int>本例中的类型)替换:

如何更改上面的代码以使其正常工作?我不能只是做

因为std::less<int>::operator()不接受boost::bind. 我在这里想念什么?TIA