楼主
模块分区问题
C++20的模块base:son;这不是传统意义上的子模块,跟确切的说是模块分区,本质上仍是同一个模块,
进而会引发一个问题,编译器找实现文件的时候,可能会报错找不到实现,原因是,模块分区的实现在本质上仍是传统所说的模块的实现,而不是模块分区的实现,
所以在写的时候就会发现,像实现文件写module base:son;是会报错的,正确来说,
按照C++20标准,实现文件的模块只能是module base;
原帖: linux.sb/topic/13026 · 共 3 楼 · 标题快照 2026-08-16 17:03:55
C++20的模块base:son;这不是传统意义上的子模块,跟确切的说是模块分区,本质上仍是同一个模块,
进而会引发一个问题,编译器找实现文件的时候,可能会报错找不到实现,原因是,模块分区的实现在本质上仍是传统所说的模块的实现,而不是模块分区的实现,
所以在写的时候就会发现,像实现文件写module base:son;是会报错的,正确来说,
按照C++20标准,实现文件的模块只能是module base;
对反直觉的是 一个模块partition的确只能是接口或者实现,不能像传统模块一样拆分成接口单元和实现单元
export module base:son;
export void foo(); module base;
import :son;
void foo() {
}