作为C++20的一大特性,据说Module能够大大加快项目的编译速度,最近正好看到微软推出了Visual Studio 2022 预览版,随附了面向 C++20 的最新工具链,赶紧拿来体验一下。

        体验项目很简单,就两个小文件:

        1. hello.ixx

export module mo.hello.cpp;
 
export auto hello()
{
    return "hello cpp module";
}



        2. main.cpp

import mo.hello.cpp;
import std.core;
 
int main()
{
    std::cout << hello() << std::endl;
    return 0;
}



        结果编译报错,这错误比写的整个代码都长

Visual Studio 2022 Preview 使用 C++20 Module_vs2022

         这是因为VS2022默认的C++语言标准还是C++14, 需要修改为最新的,在解决方案资源管理器中,右击项目,选择属性,进入属性设置页:

Visual Studio 2022 Preview 使用 C++20 Module_module_02

 在属性页中选择 配置属性 -- 常规 -- C++语言标准 -- 预览-最新C++

Visual Studio 2022 Preview 使用 C++20 Module_module_03

         应用后继续编译,这次出现了新的错误

Visual Studio 2022 Preview 使用 C++20 Module_c++20_04

        这次是因为----从2019版16.2 版的 Visual Studio,模块未在 Microsoft c + + 编译器中完全实现。 你可以使用模块功能创建单分区模块,并导入 Microsoft 提供的标准库模块。 若要启用对模块的支持,请使用 /experimental: module 和 /std: c + + 最新版本进行编译。 在 Visual Studio 项目中,右键单击 解决方案资源管理器 中的项目节点,然后选择 "属性"。 将 配置 下拉设置为 "所有配置",然后选择 "配置属性" " > c/c + + > 语言" " > 启用 c + + 模块 (试验性)----从2019试验到2022了,还没试验完呢,设置一下吧

Visual Studio 2022 Preview 使用 C++20 Module_vs2022_05

         应用后再次编译,成功了!!!

Visual Studio 2022 Preview 使用 C++20 Module_vs2022_06