首页 > 解决方案 > 我可以`导入`?

问题描述

多次谈话告诉我我们可以import <standardheaders>,但这似乎在 Compiler Explorer 中根本不起作用。在最新的 Clang 和 GCC 中,我只是收到错误,在谷歌搜索时,我看到一些 Microsoft 文档说这是可行的,但它们的方法似乎非常不标准,以某种供应商特定的方式重新组合标题。

是什么赋予了?

我们能做到这一点吗?或者它永远不会以标准方式发生?即使它们是标准头文件,它是否依赖于单独为我们执行的构建系统?这是一个计划中的功能被删除了吗?或者它是否总是计划高度特定于供应商和非标准化,并且即使是标准头文件也需要构建系统?是否有计划至少对标准功能的划分进行标准化,这样我们就没有一堆不同于标头方案的不同供应商特定的组织方案?

标签: c++modulec++20

解决方案


将标准头作为合成头单元导入的建议是P1502

STL 在 MSVC 的issue中说,它对于 VS 2019 16.10 Preview 2 来说是完整的功能。

GCC文档和 Clang文档都没有列出 P1502 的当前状态,但对模块的支持通常是“部分的”。

我们能做到这一点吗?

大概当编译器/标准库实现者得到它时。在那之前,我们可以安全地使用#include与合成头单元相比没有缺点的。


推荐阅读