Jonathan Boccara(《Fluent C++》的作者)编写了一个名为pipes的库。
该仓库的主页说,这种“管道”不像使用范围那样,尽管看起来很相似:它不是基于惰性拉取,而是饥饿推送。但是声明说,不能使用范围库执行各种“管道”操作。例如:
- unzip - 采取压缩的输入-基本上是k元组的范围-并产生k个单独的独立输出。
- fork - 生成容器/范围的多个(独立)副本。
我不太明白为什么在原则上会出现这种情况。(当然除了你无法获取结束迭代器/标记的范围之外。)
Jonathan Boccara(《Fluent C++》的作者)编写了一个名为pipes的库。
该仓库的主页说,这种“管道”不像使用范围那样,尽管看起来很相似:它不是基于惰性拉取,而是饥饿推送。但是声明说,不能使用范围库执行各种“管道”操作。例如:
我不太明白为什么在原则上会出现这种情况。(当然除了你无法获取结束迭代器/标记的范围之外。)
范围可以使用 unzip
函数(fork
实际上只是复制范围)。但它不会是一个 |
风格的适配器;它将是一个函数,接受某个可分解类型的范围,并返回一个元组范围。如果你想对它们进行更多处理,那么你需要将元组存储在一个值中,访问各个元素,并根据需要使用它们。