文档目录

总结

第一阶段(CRTP):
    编译期多态,消除虚函数调用
    不能放同一容器,代码复用性好

第二阶段(Type Erasure):
    非侵入式接口,包装器内部虚函数
    std::function 本质是 TypeErasure + SBO

第三阶段(创建型模式):
    工厂:注册表 + unique_ptr,开闭原则
    单例:static local 线程安全(C++11)
    Builder:链式调用 + build() 时校验

第四阶段(行为型模式):
    Strategy:std::function 替代虚类
    Observer:vector<function> + weak_ptr 防悬垂
    ScopeGuard:RAII 包裹清理操作
    COW:读共享写复制,适合读多写少

第五阶段(惯用法):
    PIMPL:隐藏实现、加速编译
    NVI:公有非虚 + 私有虚,统一加横切逻辑
    Copy-and-Swap:异常安全赋值
    noexcept:vector 扩容时优先移动
    explicit + [[nodiscard]]:防隐式转换、防忽略返回值