ev-fmt-modules-macro-isolation-003¶
| 字段 | 值 |
|---|---|
| 项目 | fmtlib/fmt |
| 固定 commit | 1be298e1bd68 |
| 路径 | test/module-test.cc |
| 行段 | L46-L51 |
| 特性 | 模块(modules) |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-26 |
| 测试代码 | 是 |
| 发现方式 | manual |
用法¶
测试确认模块导入不会泄漏实现头文件的宏
为什么典型¶
宏不属于模块接口,import 不会把它们带进客户端;这条测试把宏隔离从标准条款变成可执行检查。
摘录¶
// Macros must not be imported from a named module [cpp.import]/5.1.
TEST(module_test, macros) {
#if defined(FMT_BASE_H_) || defined(FMT_FORMAT_H_)
FAIL() << "Macros are leaking from a named module";
#endif
}
备注¶
测试路径;验证命名模块不会把传统头文件宏导出给导入方。