肉眼|第一次肉眼可见的对C++20 Ranges的支持
今儿个 , 咱们十分高兴
Visual Studio 2019 v16.6正式开始支持C++20 Ranges 。 我们已经针对系统支持的部分开发了一些版本 , 这些虽然很重要 , 但是用户看不到它们的存在 。
但是在此版本中 , 冰山一角终于打破了水面 , 现在终于可以有一些工具供用户使用了 。
Ranges的实现严格取决于C++ Concepts, 因此MSVC和Clang均可在其C++ 20的预览模式下使用 , 但尚未得到IntelliSense的很好支持 。 (请不用担心 , 我们很快就会得到适当的IntelliSense支持 。 )
都有什么新东西?
>从v16.3开始 , 包含有concepts的头文件就已经随MSVC一起发布了 。
这个头文件中包含了std::ranges::swap , 有点类似于std::swap 。
>我们在头文件中引入了一些Range有关的算法 , 具体如下:
copy, copy_n, 和copy_if
all_of, any_of, 和 none_of
find,find_if, 和 find_if_not
count 和 count_if
for_each 和 for_each_n
equal 和 mismatch
接下来的计划
自从STL开源以来 , 我们就一直在官网上公布STL的开发进展 , 因此你可以随时来到官网页面来查看我们的工作 。 附件Wiki中的Changelog页面实际上是过去和将来STL工作的一组发行说明 , 随着请求的不断合并 , 我们也会不断对其进行更新 。
在”Implement Ranges”中记录了我们实现了范围设计的哪些部分 , 同时也粗略地介绍了我们接下来将要进行的工作 。
在即将到来的Visual Studio 2019 v16.7(当前还处于预览版)中 , 将包含有关Ranges的更多组件:
>新算法:find_end, find_first_of, 和 adjacent_find
>对reverse_iterator和move_iterator进行了更新 , 以便可以更好地和新的Ranges迭代类型一起协调工作 , 包括新增加的move_sentinel 。
>subrange类模板 , 它可以用来将迭代器和sentinel一起聚合到一个方便的range对象中 。 (实际上上一个视图)
>视图类型的view_interface基类可以继承一些简单行为的默认实现 。
>约束透明比较函数对象类型:equal_to, not_equal_to, less, greater, less_equal, greater_equal, 和compare_three_way
v16.8版本将会包含更多的东西:我们计划是在16.8中使用IntelliSense完全支持/std: c++ latest模式下的Ranges 。
总结
老夫完全看不懂 , 我喜欢的那个C++ , 你去哪儿了?
本文插图
【肉眼|第一次肉眼可见的对C++20 Ranges的支持】
推荐阅读
- 少年的第一次旅行|重庆又一古镇走红,耗资5000万建造而成,被誉为“网红小镇”
- 法制|未成年小伙网上学偷车技术 第一次作案就被抓了
- 少年的第一次旅行|再现江户时代的生活,200年古建筑改造成民宿,远离都市的好去处
- 蔡颂思|26岁女星发文嫌弃隔离酒店,称第一次住二星级,网友三字评论亮了
- 疫情|韩国防疫部门:首都圈疫情比第一次暴发“更严重”
- 林有有|林有有第一次是给许幻山了吗?看清俩人谈话地点,许幻山被套路实锤
- 中国新闻网|韩国防疫部门:首都圈疫情比第一次暴发“更严重”
- 宋祖儿送孙坚三根鸭舌|宋祖儿送孙坚三根鸭舌 孙坚:我第一次感受到了一句话,礼轻情意重
- 孙坚|宋祖儿送孙坚三根鸭舌 孙坚:我第一次感受到了一句话,礼轻情意重
- |工作久了会有哪些“职业病”?第一次牵手顺便把个脉,发现怀孕了
