注册 登录
编程论坛 C++教室

为什么这段程序能自动推出 count的值

后卿 发布于 2023-03-06 13:02, 161 次点击
template<typename T,short count>
T ave(T(&arr)[count])
{
    T sum {0};
    for (int i =0; i < count; i++)
        sum += arr[i];
    return sum / count;
}
int main()
{
    int a[5]{ 1,2,3,4,5 };
    std::cout << ave(a);
    system("pause");
    return 0;
}
为什么这里不用传入默认参数count,而程序却可以运行呢

[此贴子已经被作者于2023-3-6 13:13编辑过]

2 回复
#2
rjsp2023-03-06 15:08
int [5]
T [count]

为什么不能推导出 T=int, count=5 呢?
#3
后卿2023-03-06 16:23
回复 2楼 rjsp
好的有点明白了,非常感谢
1