跳转至

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。

查看固定 commit 源码 · 返回证据索引