【发布时间】:2021-03-09 12:07:12
【问题描述】:
我有一个带有一个模块的简单项目。
单位.ixx
module;
#include <cassert>
export module Units;
export class Base {
public:
};
export void foo();
Units_impl.ixx
export module Units;
class Derived : public Base { // 'Base': base class undefined
};
export void foo() {
Derived derived;
}
Main.cpp
import Units;
int main() {
return foo();
}
编译器向我显示错误“Base”:未定义基类。 这是预期的行为吗?如果是,如何将模块划分为子模块?我希望 Derived 在我的 Units 模块中,但在不同的文件中。
【问题讨论】:
-
它可能与真正的问题无关,但你不能在不使用
export module …;的文件中包含export:只需在foo的定义中省略它即可。 -
谢谢。增加了出口。问题是一样的
-
但是同一个模块不能有两个主接口单元!
-
在这个例子中不清楚什么是公共接口和私有接口。
标签: c++ visual-studio module c++20