赞
踩
距离上一次我们分享C++20模块有关的更新,已经有一阵子了。在过去的一段时间,整个开发团队,包括工具集,项目系统和IDE团队都在努力工作,致力于为C++开发者提供超一流的C++20模块体验,那今天我们就来讲讲我们都做了些什么。坐稳了吗?
由于MSVC已经开始实现C++模块标准,工具集会在任何时候都强制使用/experimental:module编译开关。因为模块已经被正式移入到C++20,编译器团体做了大量的工作,终于将模块合并到了/std:c++latest中。
关于/std:c++latest有如下需要注意的点:
> /std:c++latest现在隐式包含/permissive-。这意味着:当前依赖于编译器的许可行为与/std:c++ latest结合使用的客户现在必须在命令行上应用/permissive。注意:启用/permissive将会禁用模块。
> 现在,模块已转换为最新的语言模式,由于模块和导入被转换为关键字,因此某些代码可能会无法工作。
我们已经记录了一些常见方案。 MSVC所实现的文件转换模块和导入到关键字有更多方案,请参考P1857R1。
> Visual Studio附带的标准的std*模块不能单独通过/std:c++latest来使用。标准库模块尚未标准化,因此仍处于试验阶段。要继续使用标准库模块,请使用/experimental:module作为其命令行选项的一部分。
C&#
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。