CppCoreGuidelines T.2 用模板表达哪种适用于多种数据类型的算法
25 August 2023
“Use templates to express algorithms that apply to many argument types”
理由
通用化。精简代码。互操作。可重用。
例子
这个原则是 STL 的基础。一个简单的 find
算法,可以适用于多种不同的输入类型。
template<typename Iter, typename Val> // requires Input_iterator<Iter> // && Equality_comparable<Value_type<Iter>, Val> Iter find(Iter b, Iter e, Val v) { // ... }
注意
只有确实需要适配多种参数类型的时候,才使用模板。不要过度抽象。