默认模板参数值
就像函数参数一样,模板参数可以具有默认值。必须在模板参数列表的末尾声明具有默认值的所有模板参数。基本思想是在模板实例化时可以省略具有默认值的模板参数。
默认模板参数值用法的简单示例:
template <class T, size_t N = 10>
struct my_array {
T arr[N];
};
int main() {
/* Default parameter is ignored, N = 5 */
my_array<int, 5> a;
/* Print the length of a.arr: 5 */
std::cout << sizeof(a.arr) / sizeof(int) << std::endl;
/* Last parameter is omitted, N = 10 */
my_array<int> b;
/* Print the length of a.arr: 10 */
std::cout << sizeof(b.arr) / sizeof(int) << std::endl;
}