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。