Share via


Github提供了微软Visual C的Range-v3特性

[原文发表地址]Range-v3 on MSVC is Available on GitHub

[原文作者]EricMittelette

[原文发表时间]2016/8/23 

我们在Microsoft GitHub repo上发布了 已被visual C++ 团队实现的range-v3功能.

对于紧接着发布的visual studio 2015 UP3 vc++编译器中,range-v3特性对于改进编译器 expression SFINAE(模板匹配失败不是错误)特性做出了相应的贡献.这是第一个在MSVC上实现的range特性标准版. 在标准文档N4128(Ranges for the Standard Library, Revision 1)中。 Ranges被定义为如下: 一个Range作为一个对象可以引用连续的元素,从概念上来看,Range类似于迭代器中的pair。Range特性的主要目的是提供给用户当调用算法STL库时可以使用更简单的语法书写。

不使用Range特性前要这样写:

std::vector<int> v { /*…*/ };

std::sort( v.begin(), v.end() );

使用Range特性语法更加精简:

std::sort( v );

更多关于Range-v3的特性请参考:here

C++团队重视Range特性的支持, 我们不仅雇佣了专门维护这个特性的工程师(Casey Carter), 而且根据市场的调查, 我们会继续使这个特性覆盖到整个编译器.(从代码解析到代码生成).

这次发布的库虽说还属于早期的beta版本, 但是绝大多数特性都已包含中其中。这个Branch将不会包含在MSVC中,而作为独立部分不断向完整的range特性进行扩展. 此次的功能实现已经可以工作在vs2015 up3中, 也包含visual studio 15 preview 4.

获取Range V3应用只需要输入如下的github命令:

git clone https://github.com/microsoft/Range-V3-VS2015

请告诉我们您的想法。对于您的建议,反馈,我们十分感兴趣.