More Speculations on Arenas in C++
8 months ago
- #Object Lifetimes
- #Memory Management
- #C++
- Patrice Roy的著作《C++内存管理》强调了C++相比C语言更严格的对象生命周期规则
- 由于生命周期语义差异,C语言常见的内存管理实践在C++中可能不安全
- C++20为`malloc`等函数引入异常机制以解决生命周期问题
- `start_lifetime_as`、`construct_at`和placement `new`等新特性帮助管理对象生命周期
- 本文重新审视了竞技场分配器的实现,修正了指针来源(provenance)问题
- 在竞技场分配器中使用数组`new`简化了代码并避免显式类型转换
- 该竞技场分配器不调用析构函数,虽然允许但可能导致资源泄漏
- 指针来源和生命周期考量使得分配器实现更加清晰