C++ 模块分区包含语句

问题描述

我有以下两个文件

//building.cpp

export module building;
export import building:apartment;
//apartment.cpp

module;
#include<iomanip>
export module building:apartment;

void test(){
   std::streambuf* buf;
   std::ostream os(buf);
   os<<std::setw(17);
}

使用 GCC11,我愿意

$ g++ -c apartment.cpp -std=c++20 -fmodules-ts
$ g++ -c building.cpp -std=c++20 -fmodules-ts

代码无法编译(内部编译器错误)。但是,如果我将 iomanip 包含到 apartment.cpp 和 building.cpp 中,我不会收到任何错误。我记得 MSVC 编译器也有类似的情况。我究竟做错了什么?模块文件及其分区中是否应该包含相同的包含语句?

解决方法

这是一个实施问题。你应该搜索报告是否存在,如果不存在就写报告。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...