遇见YY

导航

 

range-v3是C++14/17/20的一个Range库。range-v3是C++标准库(std库)的基础,其目标也是为了添加到C++标准库之中。

range-v3通过技术规范的演变,最终形成了P0896R4 (https://wg21.link/p0896r4) 范围提案文档,并且在2018年11月合并到

C++20的工作草案(https://ericniebler.github.io/std/wg21/D4128.html)之中。

range库是标准模板库(std库)的扩展,其目的是使标准模板库的迭代器和算法成为可组合的(composable),使得其功能更强

大。

range-v3有三大支柱(pillar):Views(视图), Actions(动作), and Algorithms(算法)。

视图和动作通过管道(|)(range库重载了|操作符)连接起来,使得代码简洁且从左到有很强的可读性!

下载:

https://github.com/ericniebler/range-v3/tree/0.11.0
mkdir build
cd build
cmake ..
make
make install

测试:

#include <range/v3/all.hpp>
#include <iostream>
#include <string>

using std::cout;

int main(){
    std::string s{"hello"};
    ranges::for_each(s, [](char c) { cout << c << ' '; });
    cout << '\n';
}

 

posted on 2021-01-13 13:26  一骑红尘妃子笑!  阅读(1202)  评论(0编辑  收藏  举报