最近的连载中有很多内容涉及到C++20中的内容,例如concept等。但是由于C++20还属于新生事物,不仅可以参考的例子少,找到一个可以体验C++20功能的开发环境都困难。本文介绍使用微软VisualStudio2019预览版体验C++20新特性的方法。
下载并安装VisualStudio体验版
以下是体验版和正式版的下载地址,和正式版稍有不同:
https://visualstudio.microsoft.com/zh-hans/vs/preview/
上图中选择下载社区版(Community)下载在线安装包。
安装包开始执行之后,选择下图中【使用C++的桌面开发】并按照提示进行安装。
创建C++20项目
启动VisualStudio2019预览版之后,按照下图构建【控制台应用】。
修改编译器设定
项目构建完成之后,打开项目设定画面,如下图所示选择【语言】设定,并将【C++语言标准】修改为【预览-最新C++工作草案中的功能(/std:c++latest)】
编译并执行
从2019年9月10日的预览版16.3开始,VisualStudio2019开始支持concept特性,消息发布的链接如下:
https://devblogs.microsoft.com/cppblog/c20-concepts-are-here-in-visual-studio-2019-version-16-3
但是,如果真是用VisualStudio预览版编译concept相关代码(比如上面链接中的代码)时,会发生编译错误。原因仅仅是因为代码智能解析功能还不支持concept特性。对策也很简单,只要按照下图选择生成方式为【仅生成】即可正常编译通过(如果使用上述示例代码,还需要自己加一个main函数)。
主要编译器对C++20的支持情况
目前VisualStudio2019对已经支持concept相关功能,而range相关功能正在开发中。主流编译器对C++20的支持情况可以参照下面的链接(中文网站稍有落后):
https://en.cppreference.com/w/cpp/compiler_support