特性完成:VS2019 v16.8全面支持C++协程
C++ 支持 特性 完成 全面 协程 vs2019
2023-09-14 09:10:46 时间
一段往事
回首有关C++协程的往事,真是犹如一段十分漫长的旅程。
早在2013年,我们就官宣了一个有关”可恢复函数”的早期预览版本,接下来在2014年,我们添加了/await开关并提交了C++标准化建议的初始版本。2015年,我们提交了修订版本。后来,通过Visual Studio 2017和Visual Studio 2019,我们都在持续地跟踪有关协程TS(Technical Sepecificaion)的内容更新。2019年,随着协程完全实现被纳入到C++标准中,我们终于可以宣布了:Visual Studio 2019 v16.8将完全支持C++20协程特性。
Standard vs. TS Coroutines
最终通过标准化程序成为C++20一部分的协程支持,与早期的提议草案以及我们在/await开关下在MSVC中获得的实验版本协程有所不同。
我们在实现v16.8中的协程支持时,考虑了两个重要,但是相互矛盾的目标。
1. 提供一个严格遵循C++标准的协程实现,使得用户可以编写和使用可移植代码。
2. 确保那些使用实验版本协程的用户可以毫不费力地升级到v16.8而无需改动他们的代码。
随着提案的更改,我们会尽可能增加新的支持,而不破坏针使用早期协程版本的代码。
这当然不是标准的:它仍然接受所有旧的关键字,名称和签名,和上面的第一个目标对应。
与我们在/await下实现的原始版本相比,还存在少量的行为更改,例如一个promise对象的构建方式。这些可能导致先前可以通过编译的程序变得无法编译或表现出与之前不一样的行为。
Standard Mode – /std:c++latest
相关文章
- EasyC++79,虚函数注意事项
- Windows VC++路径标准化-PathCchCanonicalize
- c++ auto类型_auto C++
- C++stl库_c++库
- 继承用法大全——c++面向对象编程(必看)
- c++的链表-链表入门(C++)
- Xmake v2.7.3 发布,包组件和 C++ 模块增量构建支持
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
- C和C++不安全?谷歌宣布Android加入对Rust语言支持
- g++默认支持c++11标准的办法详解程序员
- C++ string支持迭代器方法详解
- 指针变量是什么,C++指针变量详解
- C++ STL流迭代器(stream_iterator)用法详解
- C++Primer笔记之关联容器的使用详解
- C++如何用cout输出hex,oct,dec的解决方法
- c++支持coroutine的简单示例