当声明模板参数是typename
/class
必要的(因为我在下面建议的语言不能使用 diff 语法)。我知道模板参数可以是整数,因此您必须选择默认为 int 或 to typename
/ class 但仍然如此。
即为什么不
template <T>
T max(T a, T b) {
return a > b ? a : b;
}
代替
template <typename T>
T max(T a, T b) {
return a > b ? a : b;
}
和
template<T, size_t n>
size_t array_size(const T (&)[n]) {
return n;
}
代替
template<typename T, size_t n>
size_t array_size(const T (&)[n]) {
return n;
}