头文件导入模块是否标准?

Does header file import modules a standard thing?

C++ 20 模块保证向后兼容,因此模块可以导入头文件。

并且Visual Studio引入了header file import modules,这是标准还是VS的东西?

// MyProgram.h
import std.core;
#ifdef DEBUG_LOGGING
import std.filesystem;
#endif

#include 是一个预处理器指令,它对目标文件中的文本执行文本 copy-and-paste。模块没有改变这一点。文本 copy-and-pasting import 指令仍然是文本 copy-and-pasting.

所以是的,这是标准的。假设您的编译器正确实现了它们。

话虽这么说,拥有 headers import 东西可能不是一个好主意。如果你想构建一个 collection 的 import 供系统中的各种文件使用,只需构建一个正确命名的模块并获得模块构建系统的好处。 export import 个模块就可以了。