我开始尝试 Microsoft Visual Studio 的 C++ 模块实现。微软将标准库分为五个模块:
- 标准正则表达式
- 标准文件系统
- 标准内存
- 标准线程
- 标准核心
我已经用上述模块替换了我的标准库,适用于我项目中的每个文件。但是,我包含了许多第三方库文件。例如,一个第三方库在一个头文件中有一个,而我在包含第三方库的头文件之前#include <memory>
已经在我的文件中。import std.memory;
模块是否std.memory
定义了会导致第三方库跳过不必要的包含防护,#include <memory>
或者它是否包含内存,即使模块覆盖<memory>
已经包含在内?
标准对此有什么要说的吗?这似乎是向模块过渡期间的一个重要问题:如果使用第三方库,如果它们的包含仍然像以前一样出现,那么对模块的好处似乎会大大降低。