C++ 模板:全特化和偏特化
利用模板,使得 C++ 对于类型的要求更为宽松,使得不同类型的同种逻辑操作可以封装在同一个模板内,提高复用性。
函数模板
类模板
和函数模板不同,编译器无法为类模板推断模板参数类型,必须要显式在模板名后的尖括号里提供信息,编译器再利用这些模板实参实例化特定的类
1 | // 类模板 |
类模板:全特化
之前的模板适用于一切定义了==
操作的类型,有可能存在某些特殊类型或自定 i 有类型不支持通用模板重的操作,或者像用不同的逻辑实现,这时候就需要针对性定义一下
1 | // 类模板:全特化 |
类模板:偏特化
全特化中将所有的模板参数限定为特定类型,也可以只限定部分模板参数
比如这里想实现对两种不同类型的Compare::Equal(T1, T2);
1 | // 类模板:偏特化 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Fubuki の Donuts!