获取静态数组的长度

时间:2017-10-06 11:04:45

标签: c++ arrays

有人可以向我解释为什么这段代码有效(返回静态数组的大小):

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;
}

0 个答案:

没有答案