C++模板编程:特性、应用与优化
1. 模板默认参数
模板函数和类类型支持默认模板参数。例如:
template<typename x_type = std::uint16_t,
typename y_type = x_type>
class point
{
// ...
};
// An (x16, y16) point.
point<> pt16_16 { 1234U, 5678U };
// An (x8, y8) point.
point<std::uint8_t> pt08_08 { 12U, 34U };
// An (x8, y16) point.
point<std::uint8_t,
std::uint16_t> pt08_16 { 34U, 5678U };
默认模板参数类型可以设置为之前提供的模板参数的符号类型名。在编写带有默认模板参数的模板时,不需要为每个模板参数提供默认值。模板默认参数从最后一个模板参数开始,依次向模板参数列表的开头设置。
| 示例 | 是否合法 | 原因 |
|---|---|---|
template<typename x_type = std::uint8_t, typename y_type = std::uint16_t> class point { ... }; |
超级会员免费看
订阅专栏 解锁全文
1416

被折叠的 条评论
为什么被折叠?



