编译期 AOP: 把横切不变式收进循环骨架

从普通 while 循环里重复出现的心跳上报出发,说明如何用 C++17 函数模板把每轮心跳收进循环骨架,并划清 AOP、模板方法与策略组合的边界。

October 18, 2026 · 4 min · 804 words · map[name:DeguiLiu]

C++ 编译期多态: 用模板替代虚函数的机制与代价

以采集模块为例,说明骨架加钩子、策略模板、Traits 注入与函数指针擦除的机制、代价,以及用反汇编和体积对比判断是否真的替代了虚函数。

September 10, 2026 · 5 min · 865 words · map[name:DeguiLiu]

CRTP 原理: 基类如何在编译期知道子类

CRTP 把子类名当模板参数传给基类,让基类在编译期认领自己的子类,从而直接调用并内联,不查虚表、不留 vptr。本文拆解它成立的三条原理、与虚函数的差别、踩坑边界,以及在嵌入式状态机里的落地形态。

September 10, 2026 · 2 min · 336 words · map[name:DeguiLiu]

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

传统设计模式依赖虚函数和动态分配,在嵌入式系统中代价偏高。本文以 newosp 真实代码为例,给出 8 种编译期替代手法,覆盖类型擦除、RAII、编译期分发、Tag Dispatch、强类型包装、零堆 Pub/Sub、Visitor 与 CRTP。

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

嵌入式系统中的编译期分发: 用模板消除虚函数开销

结合 MISRA C++ 规范和 newosp 工程实践,说明如何用 C++17 模板做编译期分发,在保留代码灵活性的同时去掉虚函数的分发开销。文中数据来自实测:编译期分发比回调模式快 15 倍,比虚函数分发开销低 95% 以上。

February 16, 2026 · 7 min · 1310 words · map[name:DeguiLiu]