ev-mold-move-unique-member-002¶
| 字段 | 值 |
|---|---|
| 项目 | rui314/mold |
| 固定 commit | 27162691b71a |
| 路径 | src/input-sections.cc |
| 行段 | L343-L345 |
| 特性 | 移动语义与右值引用 |
| 许可证 | MIT |
| 代码来源 | 项目源码 |
| 级别 | manual |
| 审核 | zyuhao7 @ 2026-10-27 |
| 测试代码 | 否 |
| 发现方式 | manual |
用法¶
在成员初始化列表里用 std::move 转移 unique_ptr 的所有权
为什么典型¶
unique_ptr 不可拷贝,移动是让它进入成员的唯一方式,同时明确所有权转交。
摘录¶
MergeableSection<E>::MergeableSection(Context<E> &ctx, MergedSection<E> &parent,
std::unique_ptr<InputSection<E>> &isec)
: parent(parent), section(std::move(isec)), p2align(section->p2align) {
备注¶
生产路径;可合并输入段的构造,所有权从调用方转移到段对象。