我们很高兴地宣布 Visual Studio 2019版本16.6 包含第一个 u ser可见 件 C++的20个范围支持。我们一直在研究 支持 现在有几个释放的机器 但在这次释放中,冰山一角终于冲破了水面 现在有一些工具可用 面向用户 . 范围 实施 关键取决于C++ C oncept,因此可以与MSVC和Clang-in一起使用 他们的C++ 20预览 模式 s 但还没有得到很好的支持 智能感知。 (别担心,我们会有适当的智能感知支持 很快 .)
有什么?
- 图书馆的标准概念
<concepts>
哈 ve公司 曾经 航运 在MSVC中 自版本16.3起 . 这包括 自定义点std:: ranges:: swap
,就像一个更聪明的std:: swap
这对你来说是“有用的一点”。 - 第一批射程 算法
<algorithm>
:-
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
-
有一个简短的演示,其中一些设施在 从纯虚拟C++看Mahmoud Saleh的谈话 会议 ( 有代码可用 ).
接下来是什么?
我们已经 开发STL 公开 因为它是开源的 ,所以你可以随时过来 https://github. com/microsoft/STL公司 看看我们 我们正在努力。这个 附加wiki中的Changelog页 实际上是一组 关于过去和将来STL工作的发行说明,我们会随着pull请求不断更新 合并。 此评论 在 “实施范围”问题 跟踪R的哪个部分 我们实施的安格斯设计 什么样的请求 ,甚至提供了我们下一步工作的大致思路。
Visual Studio 2019版本16.7 (当前在预览中) 包括范围的更多组件:
- A 算法
find_ end
,find_ fir st_of
, 和adjacent_find
- 更新到
reverse_iterator
和move_iterator
为了更好地适应“新”范围迭代器类型,包括添加move_sentinel
- 这个
subrange
类模板,它将迭代器和sentinel聚合到一个方便的范围内 对象 (准确地说,是一种观点) - 这个
view_interface
视图类型可以从中继承一些简单行为的默认实现的基 - 约束透明比较函数对象类型
equal_to
,not_equal_to
,less
,greater
,less_equal
,greater_equal
,和compar e_three_way
版本16.8 将 包括m 啊 更多 :o 我们目前的计划是全面支持各种概念/ std:c ++最新模式 用智能感知 在16.8!
踢轮胎
请尝试一下可用的组件,我们会继续提供( D 别忘了给我打电话 自有货物 Visual Studio 2019版本16.7预览版 如果 y 你想用上面提到的东西吗 . ) 我们很乐意收到您的来信,帮助我们确定优先级并为您构建合适的功能。我们可以通过以下评论联系到您, 开发者社区 ,和 推特( @视觉 ). 针对特定于STL的问题 或者我们的范围 ,吨 他是最好的方法 伸手可及 在GitHub上提交问题 .