C++20模块文件扩展名命名规范及对应单元类型咨询
C++20模块文件扩展名规范及用途
1. C++20模块的文件扩展名命名规范
C++20标准本身没有强制统一模块文件的扩展名,实际使用中都是各编译器、工具链及社区约定俗成的命名方式,常见的有以下几种:
.ixx.cppm.cxx/.cpp.mpp(部分工具链使用)
2. 各类扩展名对应的单元类型
.ixx:微软MSVC编译器的专属约定,专门用于模块接口单元,编译器会默认将这类文件识别为模块接口,无需额外配置。.cppm:社区通用约定,多用于模块接口单元,GCC、Clang等主流编译器均对该扩展名有良好支持,能清晰区分模块接口与普通源文件。.cxx/.cpp:传统C++源文件的扩展名,在模块体系中既可以用来编写模块实现单元,也能在文件开头明确声明export module时作为接口单元使用——但一般不推荐这么做,容易和普通非模块源文件混淆。.mpp:部分工具链(如CMake)会将该扩展名当作模块接口单元的标识。
内容的提问来源于stack exchange,提问作者Kischy
相关产品推荐
相关产品推荐

