預設模板引數值
就像函式引數一樣,模板引數可以具有預設值。必須在模板引數列表的末尾宣告具有預設值的所有模板引數。基本思想是在模板例項化時可以省略具有預設值的模板引數。
預設模板引數值用法的簡單示例:
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;
}