【发布时间】:2021-07-04 06:18:34
【问题描述】:
在这样的情况下:
auto pow = [](int i) {return i * i; };
auto closure = ranges::views::transform(pow);
closure 似乎是view_closure。我确实明白最后一行没有多大意义,因为变换没有应用到任何地方。 实际上,我也可以通过管道将向量 x 导入到 closure 中,它既可以编译又可以正常工作。
但是,什么是 视图闭包?它是一个期望在某处应用的“类似函数”的对象吗?它的语义是什么?
我从 Eric Niebler 的 range-v3 源代码中找到了 this,但没有任何文档在其他地方指定它。
我什至不知道view_closure 是供内部使用还是供用户使用。
【问题讨论】:
标签: c++ c++20 range-v3 std-ranges