如何使用 Godbolt(编译器资源管理器)测试 C++ 模块?

How to test C++ modules with godbolt (compiler explorer)?

为了在 C++20 中使用自写模块提问或演示 bugs/features,能够使用 Matt Godbolt's compiler explorer.

会很棒

示例:

test.cpp(模块测试):

export module test;

export template<typename T>
void do_something(const T&)
{
}

clang++ -std=c++20 -stdlib=libc++ -fmodules -c -Xclang -emit-module-interface -o test.pcm test.cpp

编译

main.cpp:

import test;

int main() {
    do_something(7);
}

clang++ -std=c++20 -stdlib=libc++ -fmodules -fimplicit-modules -fimplicit-module-maps -fprebuilt-module-path=. main.cpp

编译

问:有没有办法用编译器资源管理器做到这一点?

目前你不能。典型的模块示例需要多个源文件。例如。在你的例子中,main.cpp & test.cpp。 GodBolt 当前不支持此功能。 我尝试在 Godbolt 上使用原始 github 内容进行构建。但它不起作用。我打开了这个request。 另请参阅正在进行的 request,它似乎正在处理中。