C++ 20 module小试(c++ unittest)

C++ 20 module小试(c++ unittest)

编码文章call10242025-02-01 3:19:598A+A-

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 改成了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等其它类型,暂时就先不试了。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4