跳转至

ev-mold-auto-upper-bound-001

字段 值
项目 rui314/mold
固定 commit 27162691b71a
路径 src/mold.h
行段 L2624-L2630
特性 auto 与 decltype
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-27
测试代码 否
发现方式 manual

用法

用 auto 承接 upper_bound 返回的迭代器类型

为什么典型

迭代器类型由容器和模板参数共同决定,写出来冗长且易错,auto 让调用点只关心结果。

摘录

template <typename E>
std::pair<SectionFragment<E> *, i64>
MergeableSection<E>::get_fragment(i64 offset) {
  std::span<u32> vec = frag_offsets;
  auto it = std::upper_bound(vec.begin(), vec.end(), offset);
  i64 idx = it - 1 - vec.begin();
  return {fragments[idx], offset - vec[idx]};

备注

生产路径;分片查找依赖迭代器减法,类型无需显式拼写。

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