标签: template
与该标签相关的所有文章 "template".
-
C++ STL:迭代器如何解耦算法与容器
STL 的灵魂是 Alexander Stepanov 的泛型编程思想:算法只依赖迭代器,容器只提供 begin/end——N 个算法 × M 个容器从需要 N×M 份代码变成 N+M 份。vector 扩容用 moveifnoexcept 保证强异常安全,std::sort 用 introsort 保证最坏 O(n log n),unorderedmap 因 ABI 包袱锁死为链地址法(比 absl::flathash_map 慢 2-3 倍)——这些实现选择背后都有性能与兼容性的深层权衡。
-
现代 C++(四):模板元编程从 SFINAE 到 Concepts
C++ 模板元编程(TMP)的本质是把编译器当成纯函数式解释器:类型是值、模板是函数、偏特化是模式匹配。SFINAE 是语言规则的副作用被滥用成约束机制的历史遗留,C++17 if constexpr + C++20 Concepts 把"编译期分支"和"约束表达"从巫术升级为一等公民,错误信息从 200 行模板栈变成一行说明。业务代码 95% 用不到深度 TMP,但读标准库和调试模板错误必须看得懂。