跳转至

ev-mold-span-split-001

字段 值
项目 rui314/mold
固定 commit 27162691b71a
路径 src/output-chunks.cc
行段 L880-L892
特性 std::span
许可证 MIT
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-24
测试代码 否
发现方式 tree-sitter

用法

用 span 与 subspan 把缓冲区切成固定大小的块

为什么典型

视图切片不复制底层数据,长度与起始位置随视图一起传递,是 span 的核心用途。

摘录

template <typename T>
static std::vector<std::span<T>> split(std::vector<T> &input, i64 unit) {
  std::span<T> span(input);
  std::vector<std::span<T>> vec;

  while (span.size() >= unit) {
    vec.push_back(span.subspan(0, unit));
    span = span.subspan(unit);
  }
  if (!span.empty())
    vec.push_back(span);
  return vec;
}

备注

生产路径;mold 构建声明 cxx_std_20。

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