有人可以向我解释为什么这段代码有效(返回静态数组的大小):
template<class T, size_t N>
size_t lenGood(const T (& arr) [N])
{
return N;
}
而且这件作品没有(我估计会衰减指针):
template<class T, size_t N>
size_t lenBad(const T arr[N])
{
return N;
}
示例主要:
int main()
{
int arr[] = { 10,11,8,5,4,4 };
auto sizeGood = lenGood(arr);
//auto sizeBad = lenBad(arr); // won't compile: no instance of function matches for argument list
return 0;
}