C++相关语法基础
模板特化(template specialization)
通用模板对于某种特定的类型可能是错误的,所以可能需要对特定的类型单独定义模板的实现。另一方面,可以利用特定类型的特点进行优化。
模板特化是指这样一个定义,该定义指定一个或多个模板的形参实际类型或值。 形式如下:
- template<>
- 模板名(可以是函数或类)加一对尖括号,尖括号中指定模板形参的实际类型。
- 函数形参表和函数体或类定义。
示例:
1 2 3 4 5 6 7 8 9 10 11 |
|
类模板的部分特化(partial specialization)
部分特化是指针对template参数更进一步的条件限制所涉及出来的一个特化版本。 这里的更进一步的条件限制并不仅限于指定模板形参的实际类型。 编译器在实例化时,优先使用特化的版本。
示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|