问题标签 [boost-foreach]

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 投票
0 回答
234 浏览

c++ - BOOST_FOREACH broken; is it at all possible to fix?

If you use the name of a variable whose name is the same as the name of the loop variable, BOOST_FOREACH gets confused:

I understand the cause of the problem, but I'm wondering, is this at all possible to fix?
I can't think of any way around it (that doesn't require virtual functions and such).

0 投票
1 回答
204 浏览

stl - 使用 stl 和 boost 将两个向量转换为元组向量

我有

我想得到

这就是我到目前为止所拥有的

我不确定如何进一步进行。一种方法是我可以在http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/zip_iterator.html#examples中制作一个函子作为 zip_func但我不想写额外的代码,我想使用 lambda。有什么想法吗?

0 投票
1 回答
468 浏览

boost-foreach - 带有不可复制对象的 ptr_vector 的 BOOST_FOREACH

我有以下内容:

它编译但它不链接!它说这implicit default copy constructor for X是 BOOST_FOREACH 需要的。

我如何仅迭代指向 X 的指针...没有复制构造函数,使用BOOST_FOREACH.

谢谢。

0 投票
3 回答
18430 浏览

c++ - BOOST_FOREACH 与 for 循环

我想听听您关于BOOST_FOREACH.

我已经阅读了它,就性能而言,它并不是一个非常重的标题。

此外,它强制使用“break”和“continue”语句,因为您不能真正拥有由布尔值驱动的退出条件,而且我一直被告知应尽可能避免使用“break”和“continue”。

当然,优点是您不直接处理迭代器,这简化了迭代容器的任务。

你怎么看待这件事?

你认为如果使用它应该被系统地采用以保证项目中的同质性,还是只在某些情况下才推荐使用它?

0 投票
1 回答
2041 浏览

c++ - 如何迭代两个类似 STL 的容器(笛卡尔积)

我想通过 BOOST 减少以下内容

我的意思是将 2 个循环封装在一个构造中(使用 Boost.Foreach、Boost.Range、Boost.Iterator 等)。以下是我想看到的(只是想法,不完全是我想看到的)

怎么做?

编辑:顺便说一句,在python中你可以只写

0 投票
2 回答
122 浏览

c++ - 在循环多个集合时写回迭代器

我想使用迭代器遍历两个集合,根据涉及另一个的(足够复杂的)算法修改一个。考虑以下最小示例:

如何声明???s 之间的部分(或以其他方式更改 loop3 中的参数)?

0 投票
1 回答
806 浏览

c++ - 是否可以使用 boost foreach 迭代多个容器?

我有两个容器,我需要在同一个循环中同时迭代它们。我正在使用boost foreach。

像这样:

coords 是一个 std::deque 。

我也可以以某种方式投入targets其中吗?foreach医生建议不。

0 投票
3 回答
430 浏览

c++ - 对本身是模板的项目使用 boost foreach

我有一个std::deque< std::pair<int, int> >我想迭代使用的BOOST_FOREACH.

我尝试了以下方法:

但是当我编译这个(在 Visual Studio 中)我得到以下错误:

BOOST_FOREACH使用这个的正确方法是什么deque

0 投票
1 回答
155 浏览

c++ - BOOST_FOREACH 和 cxxtest 插件的铸造问题

我目前正在做一个我使用的项目:

我遇到了一个关于const_cast. 我搜索了高低,并没有找到可以帮助我的在线资源。当我BOOST_FOREACH在测试方法中调用时出现问题。我不断收到以下错误:

const_cast_helper

我开始剖析问题,发现 const_cast 运算符被重载以进行一些运行时检查,我不知道是什么。总而言之,有一个Dereferee::const_cast_helper是 cxxtest 依赖项的一部分,是 const_cast 运算符的重载。

此助手取消定义 const_cast 运算符 (!)

最后重新引入 const_cast 运算符:

#define const_cast ::Dereferee::const_cast_helper

这样每次调用 const_cast 时,都会调用这个助手的适当构造函数。构造函数接受指针、引用、const 指针和 const 引用。

来源在这里:https ://github.com/web-cat/dereferee-with-cxxtest/blob/master/Dereferee/include/dereferee/const_cast.h

rvalue_probe

Boost 还使用强制转换来查看被迭代的集合是左值还是右值,以避免复制它/重新计算表达式。

编译器抱怨以下内容:

在我的情况下, T 是 boost::unordered_map 并且不知何故这个演员表和助手的重载打破了......

有办法解决吗?

我研究了可能的解决方案,但我不知道如何实际实现它们,我没有那么多 C++ 经验。如果我的测试中有这些编译时检查,我一点也不在乎,我可以解决这个问题。因此,任何三个方向的任何帮助都将是最有帮助的!

  1. 禁用 boost 的右值检查,使用 BOOST_WORKAROUND 和 foreach.hpp 中定义的文字

    BOOST_FOREACH_COMPILE_TIME_CONST_RVALUE_DETECTION BOOST_FOREACH_NO_RVALUE_DETECTION BOOST_FOREACH_NO_CONST_RVALUE_DETECTION BOOST_FOREACH_RUN_TIME_CONST_RVALUE_DETECTION

  2. 禁用此const_cast_helper. 当我运行我的测试程序(与测试项目不同的项目)时,我的代码按预期编译和运行,const_cast 的重载会产生问题。

  3. 实施可以修复此错误的扩展。我不知道它是否应该在const_cast_helper或中完成,rvalue_probe但它没有任何好处。

template <typename T> const_cast_helper(rvalue_probe<U>* value_to_cast) : cast_value(const_cast<U*>(value_to_cast)) { }

感谢您提前输入!

0 投票
1 回答
5673 浏览

c++ - 使用 boost::property_tree::string_path 访问值

我正在玩boost::property_tree::ptree,即使用以下json 文件

到目前为止,我一直在尝试访问嵌套的“价值”,但没有运气,这就是我所做的:

到目前为止,我所有“不好”的尝试都失败了。似乎 string_path 不允许访问整个 ptree,正如人们可以想象的那样(想想 XML 世界中的 XPath)。还是我错过了什么?