嵌入式 C++ 智能指针的五个陷阱与零堆分配替代方案
std::shared_ptr 和 std::weak_ptr 在桌面开发中是安全的默认选择,但在嵌入式实时系统中会引入原子引用计数开销、堆碎片化、不确定延迟和竞态条件等问题。本文从一个 weak_ptr 竞态 bug 出发,系统分析智能指针在嵌入式场景的五个根本陷阱,并展示 newosp C++17 基础设施库如何用 ObjectPool、FixedFunction、ScopeGuard 和 expected 实现零堆分配的确定性内存管理。