问题标签 [range-v3]

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 回答
494 浏览

c++ - Range v3. Difference between two ranges

I am trying to get the difference between two ranges but have little luck. Something like

By the way. Are there any good writings on range-v3? Something to make me wiser?

Thanks.

0 投票
1 回答
219 浏览

c++ - 使用 Ranges-v3 view::join 保持双向性

我在view::join使用(惊人的) Ranges-v3 库的函数对象时遇到了一些困难。我的客户端代码依赖于返回方法(并且非常感谢随机访问迭代器)的存在,以获取范围集合的聚合视图。

在查看了相关文档之后,似乎一种back方法与 join_view 类模板的实例化兼容,但我一直无法将其实例化。

编译器错误消息的相关位是:

第一个要求似乎是强制正确使用 CRTP,这是满足的。所以join_view违反了BoundedViewBidirectionalView概念(或两者)。我能够迅速消除前者作为一种可能性。

在这种情况下,flat满足BoundedView概念,但错误消息保持不变。

为了验证BidirectionalView,我尝试检查了 的迭代器join_view,但遇到(可疑的)是一个错误。

我已经编写了一个实时版本以便于检查。

有没有人有任何运气实例化双向join_view?关于如何在不复制基础数据的情况下实现类似行为的任何建议?

0 投票
1 回答
152 浏览

c++ - 未能在 range-v3 中的斐波那契数列上调用反向

我似乎无法对使用's生成的斐波那契数view::reverse列的前 10 个元素(使用)进行操作view::take(10)vrange-v3view::generate

我收到以下错误(随后是更多与模板相关的输出):

但是,如果我view::iota用来创建v,例如,

我没有收到错误和预期的输出。

怎么了?

0 投票
1 回答
597 浏览

c++ - v3 make_iterator_range 要求

我正在尝试将我的范围(一对迭代器)转换为,iterator_range以便我可以利用所有视图和操作。我能够将我的范围转换为 boost::iterator_range,但在转换为 range::v3 时出现编译失败。这是一个最小的例子:

看起来我需要做一些事情来满足 的Sentinel概念iterator_range,但我无法弄清楚是什么。任何帮助表示赞赏!

编辑:我正在使用 gcc54 -std=c++14 进行编译。range v3/c++ 编译错误有点长,但这里有一个片段:

0 投票
1 回答
396 浏览

c++ - shuffle action in ranges-v3

Since the ranges-library is up for inclusion into the standard I was toying around with it for a while and I have some problems with very basic concepts.

The toy example I am struggling with is this:

The fact that it is not printable kind of suggests to me that t is not really a proper range. Unfortunately the documentation (where there is any) really abuses auto, so I do not know what is going on. What do I have to do, why do I have to do it (and in case anyone does know: how is the result type going to be documented (imo proxy objects and auto don't mix well - see the Eigen library as an example)).

My second question is related to the cargo-culted action::push_back. If I omit it I get a concept error telling me that the iota-generated view needs to be mutable. Obviously a view is by design immutable, so I get the problem here, but is "pushing nothing" really the preferred way to lift things into a mutable/stateful object or are there alternatives?

Best, Richard

0 投票
2 回答
148 浏览

c++ - 管道中 lambda 的意外生命周期

我正在使用范围视图的管道,我想对输出进行完整的转换并保持管道运行。我知道我无法返回新范围的副本,因为它不会存在于任何地方。我不明白为什么我不能将存储保存在 lambda 的闭包中。

当我进行发布构建时,这是可行的,但是当我进行调试构建时,会出现段错误。如果我mapcounterlambda 中的 更改为静态并将捕获更改为引用,那么这当然可以(但显然很丑陋)。

我真正不明白的是为什么从counter(以及随之而来的闭包)返回的 lambda 的生命周期至少不如变量的生命周期长steps

0 投票
2 回答
217 浏览

c++ - 使用 lambda 和全局函数调用 range::for_each

以下代码按预期工作:

但以下内容:

给出编译错误:

我查看了源代码,但老实说,我无法理解问题所在。

0 投票
1 回答
2041 浏览

c++ - 如何连接两个现有范围::view?

我想使用现有视图进行连接。在代码中:

换句话说 - 如何创建多个向量的视图,这些向量的数量直到运行时才知道?

0 投票
1 回答
464 浏览

c++ - 如何使用 range-v3 创建 view_facade

我正在研究分层实体组件系统。之所以称为层次结构,是因为一个实体可能由多个实体组成。

我的层次结构实现为几个链表。虽然,我不依赖几个std::listor std::forward_list。实际上,我有两个向量:1)将一个实体映射到它的第一个孩子;2)将一个孩子映射到它的下一个兄弟姐妹。

我想ranges::view在这个结构上创建一个,但似乎我忘记了一些东西。

我想以这种方式使用范围(GitHub上的完整代码):

当然,使其可用于处理与前向范围兼容的视图和操作(我不太习惯于概念习语)。

这是我要修改的代码部分:

0 投票
1 回答
2325 浏览

c++ - range v3 展平序列

所以我最近看了这个关于 c++ 的演讲: https ://www.youtube.com/watch?v=mFUXNMfaciE

我非常有兴趣尝试一下。因此,在一些玩具程序之后,我被困在如何正确地将向量向量展平为向量。根据此处的文档:https ://ericniebler.github.io/range-v3/这可以使用ranges::view::for_each. 但是我似乎无法让它工作。这是一些最小的代码。