嵌入式 C++17 设计模式实战: 零虚函数、零堆分配的编译期技术

传统设计模式依赖虚函数和动态分配,在嵌入式系统中代价过高。本文基于 newosp 库的真实代码,展示 8 种编译期设计模式的实现:类型擦除替代 std::function、ScopeGuard 替代虚析构、if constexpr 编译期分发、Tag Dispatch 构造控制、强类型包装、Pub/Sub 零堆回调、Visitor 直接分发、以及 CRTP 编译期 Handler 绑定。所有模式在 -fno-exceptions -fno-rtti 下可用,热路径零堆分配。

February 16, 2026 · 9 min · 1796 words · map[name:DeguiLiu]