ev-mold-requires-expression-unit-type-001¶
| 字段 | 值 |
|---|---|
| 项目 | rui314/mold |
| 固定 commit | 27162691b71a |
| 路径 | src/gdb-index.cc |
| 行段 | L188-L192 |
| 特性 | requires 表达式 |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-26 |
| 测试代码 | 否 |
| 发现方式 | regex |
用法¶
用 requires 表达式检测成员是否存在,再决定是否编译分支
为什么典型¶
DWARF 头部版本之间字段不同;requires 表达式把“有没有 unit_type 成员”变成布尔条件,旧版本头文件仍能编译。
摘录¶
if (hdr.address_size != sizeof(Word<E>))
Fatal(ctx) << "--gdb-index: unsupported address size " << hdr.address_size;
if constexpr (requires { hdr.unit_type; }) {
switch (hdr.unit_type) {
备注¶
生产路径;if constexpr 条件中的简单 requirements。