专业的编程技术博客社区

网站首页 > 博客文章 正文

C++ 20 module小试

baijin 2025-08-03 04:02:56 博客文章 6 ℃ 0 评论

C++20引入了module的支持,也发展的越来越不像原来的C++了。

不过也确实是在尝试解决一下语言上的问题。

C++通常头文件和实现文件分离。头文件会被include,这样每个include这个文件的cpp文件,都需要额外解析这个头文件。

随着各大编译器的更新,对module的支持也是越来越好。

这里,我用Visual Studio 2022,简单的试用了一下C++ 20 module特性。


首先,新建一个console的项目,然后打开C++ 20特性。


C++ Language Standard这里选择ISO C++20 Standard。


然后在C/C++ -> Language里面把/experimental:module开关打开。

好了,现在开始写一些代码。


把原来的#include <iostream>改成了import std.core。

import std.core;

using namespace std;

int main()
{
    cout << "Hello World!\n";
}

有一些Warning,没有深究是什么原因,不过代码还是能运行的。



不管怎么样,import语句看似工作了。


然后来写一个模块,在Visual Studio里面新建一个.ixx文件。


MyModule.ixx代码如下:

export module MyModule;

export void MyFunc();

import std.core;

using namespace std;
void MyFunc()
{
	cout << "HelloWorld in MyModule" << endl;
}


这边export了MyFunc()函数,我们修改主程序,import MyModule,并调用MyFunc()。

import MyModule;

int main()
{
    MyFunc();
}



运行成功。


当然Export可以导出struct/class等其它类型,暂时就先不试了。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表