使用clang将stdlib作为模块导入
我正在尝试使用 clang 中的模块,并希望将标准库包含为模块而不是包含。
目前我这样做
#include <iostream>
#include <string>
看来您在 msvc 中应该能够导入标准库,例如
import std.core;
然而,当使用 clang 时,这似乎没有实现,或者以另一种方式实现。
我的问题是:是否可以像微软建议的那样导入 stl-includes,或者是否可以将标准库包含映射到模块 somhow。
注意:我无法使用的原因#include <...>
或者#import <...>
是因为其他错误可能会导致其自身问题。所以我认为import std.core
如果可能的话,获取或类似是现在要走的路。
ModernesCpp还提到了 std.core。
回答
C++20 标准不包括 C++ 标准库的模块定义。Visual Studio可以(不幸的是),而且许多不良站点会表现得像标准一样。但事实并非如此;这只是微软的事情。
如果要通过跨平台的模块包含 C++ 标准库,则必须使用import <header-name>
语法或编写自己的标准库模块来导入标头并导出特定的 C++ 声明。