C++ 20 模块保证向后兼容,因此模块可以导入标头。
Visual Studio 引入了 https://docs.microsoft.com/en-us/cpp/cpp/modules-cpp?view=msvc-170#modules-and-header-files,这是标准还是 VS 的东西?
// MyProgram.h
import std.core;
#ifdef DEBUG_LOGGING
import std.filesystem;
#endif
回答1
#include
是一个预处理器指令,它对目标文件中的文本进行文本复制和粘贴。模块并没有改变这一点。文本复制和粘贴 import
指令仍然是文本复制和粘贴。
所以是的,这是标准的。假设您的编译器正确实现了它们。
话虽如此,拥有标头 import
的东西可能不是一个好主意。如果您想构建系统中各种文件使用的 import
集合,只需构建一个适当命名的模块并获得模块构建系统的好处。 export import
模块是可以的。