VS 2017 RTM 关于STL 的修复

  [原文发表地址]VS 2017 RTM 关于STL 的修复 [原文发表时间] 2017/2/6 9:20AM VS 2017 RTM 版本很快就要发布了。 目前VS 2017 RC 已经投入使用,并且包含了我们在这里描述的所有改变 – 请尝试在IDE 的help >Send Feedback >Report A Problem (或者 Provide A Suggestion) 提交您的反馈信息。 关于STL 在VS2015 update 3 和 VS 2017 RTM之间的改变, 这是第三篇也是最后一篇博客。 在第一篇博客中(关于2017 Preview 4),我们详细地阐述了2015 和2017 版本是如何实现二进制兼容问题的。 在第二篇博客中(关于VS 2017 Preview 5),我们列举了那些添加到编译器和STL 的模块。(从此之后,我们已经实现了P0504R0中新引入的 in_place_t/in_place_type_t<T>/in_place_index_t<I> 和P0510R0 中抛弃的数组, 引用以及不完整类型变量。) Vector 修改:…

0

yield”关键字在VS2017中被“co_yield”替换

原文发表地址] `yield` keyword to become `co_yield` in VS 2017 [原文作者] EricMittelette [原文发表时间] 2017/1/27 协程(Coroutines)—也就是之前我们说的”C++ resumable方法重入函数”—它作为技术规范TS的一部分已经在Visual C++编译器上实现.自2013年11月VC++ CTP release版本发布支持协程功能,已经有三年的时间. 如果你正在使用协程,你应该发现关键字’yield’在VS2017中被移除.如果你的代码里面含有’yield’关键字, 你需要将它们替换为’co_yield’.如果生成器使用了’yield 表达式’,这些也需要替换为’co_yield 表达式’. 如果想将’await’替换为’co_await’, 协程中的‘return’替换为’co_return’.新的Visual C++编译器也会接受这样的改变. 请参考协程技术规范: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4628.pdf 如果有什么问题,你也可以给我们发邮件或者在评论下面留言. 为什么这样改变 作为技术规格,协程还没有被C++标准采纳.Visual C++团队最初实现协程功能时,它还只是个有前景的C++特性.2015年10月,C++标准委员会投票引入前缀”co_”去替换关键字.委员会不想改变可能会引起冲突的正在使用的关键字.”yield”关键字已经被广泛使用在农业和财务相关的应用软件中.同时,thread support library线程支持库中的Ranges TS 关键字替换如下图   Instead of `await` Use `co_await` Instead of `return` Use `co_return` Instead of `yield` Use `co_yield` 我们在VS2017中移除了”yield”关键字是因为Range-V3特性的实现, 我们希望许多开发人员声明了ranges(using namespace ::ranges)后去调用”yield”….

0