2

这不会编译:

auto out = view::closed_iota(1,100)
                | view::filter([](auto item){ return item % 10; })
                | view::chunk(10);

for (auto&& rng : out) {
    std::cout << rng << "\n";
}

错误:

In file included from <source>:4:
/opt/compiler-explorer/libs/rangesv3/trunk/include/range/v3/view/chunk.hpp:144:36: error: no matching function for call to object of type 'const _end_::fn'
                return adaptor{n_, ranges::end(this->base())};
                                   ^~~~~~~~~~~

godbolt.org/g/PhcdGc


我想知道这种行为背后的概念是什么?

如果这不满足这样的概念为什么没有警报出现?

4

1 回答 1

4

这看起来像chunk视图中的错误。它期望它的基本范围是可const迭代的,但filter视图不是。我会修复它。感谢您的报告!

编辑:这一个错误。它现在已被才华横溢的凯西 PR 808固定在大师身上。

于 2018-03-10T20:37:09.083 回答