c++ - 使用 clang 将 std lib 作为模块导入

标签 c++ clang++ c++20 c++-modules

我正在尝试使用 clang 中的模块,并希望将标准库作为模块而不是包含在内。
目前我这样做

#include <iostream>
#include <string>
It seems that you in msvc应该能够导入标准库,例如
import std.core;
然而,当使用 clang 时,这似乎没有实现,或者以另一种方式实现。
我的问题是:是否可以像 microsoft 建议那样导入 STL-include,或者是否可以将标准 lib 包含映射到模块 somhow。
注意:我不能使用的原因#include <...>#import <...>是因为其他错误可能会产生自己的问题。所以我认为得到 import std.core如果可能的话,或类似的方法是现在要走的路。
ModernesCpp还提到了std.core。

最佳答案

C++20 标准不包括 C++ 标准库的模块定义。 Visual Studio 确实如此(不幸的是),而且很多糟糕的网站都会表现得像这样是标准的。但事实并非如此;这只是微软的事情。
如果您想通过跨平台的模块包含 C++ 标准库,您将不得不使用 import <header-name>语法或编写您自己的标准库模块来导入 header 并导出特定的 C++ 声明。

关于c++ - 使用 clang 将 std lib 作为模块导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66411157/

相关文章:

c++ - 在命名空间中定义 double 常量的最佳方法是什么?

c++ - 将引用定义为另一个引用是什么意思

c++ - 多线程代码不能使用 g++ 编译,但可以使用 clang++

c++ - 将默认标志添加到 clang++ 或 g++

c++ - 在 C++ 中将函数转换为协程的性能损失是什么?

c++ - 无法使用 std::ranges::copy_if(R&& r, O result, Pred pred, Proj proj = {}) 编译我的示例

c# - 在 Racket 上实现 RC4

C++:将当前时间与下一个工作时间进行比较

c++ - Typedef 到 C++ 中的周围类型

c++ - 具有特定参数的仿函数的概念或特征?