Is C++26 getting destructive move semantics?
6 months ago
- #Memory Management
- #Ownership
- #C++
- 文本讨论了一种可能性:能否表达一个消耗对象的函数,且该函数不会对被移动源对象执行析构操作。
- 文中引用了提议的标准库函数`trivially_relocate_at`,并质疑用户是否能实现类似功能。
- 指出的核心问题是:当前函数签名无法清晰表达它会在`src`处销毁对象或在`dst`处构造对象。
- 作者推测目前只有通过手动内存管理(placement-new结合`std::destroy_at`)才能实现这种操作。
- 作者提议新增两种指针限定符(`new`和`delete`)来表达所有权转移,旨在为C/C++实现类似Rust的静态生命周期分析能力。
- 强调该提案的目标并非性能优化,而是通过静态所有权转移实现更完善的生命周期分析。