模块接口声明,MyModule.cppm:
export module MyModule;
export namespace MyNamespace {void printHello();
}
模块实现,MyModuleImpl.cpp:
module;#include <iostream>module MyModule;
namespace MyNamespace {void printHello() {std::cout << "hello,world!" << std::endl;}
}
模块调用,main.cpp:
import MyModule;int main() {MyNamespace::printHello();return 0;
}
编译与运行:
g++ -fmodules-ts -std=c++20 -x c++ -c MyModule.cppm
g++ -fmodules-ts -std=c++20 -c MyModuleImpl.cpp
g++ -fmodules-ts -std=c++20 -c main.cpp
g++ ./MyModule.o ./MyModuleImpl.o ./main.o
./a.out