c++使用模板求数组大小

假设有一个数组 int arr[10];

可以通过用整个数组的大小除以单个元素的大小来求出长度

#define ARRAY_ITEM_COUNT(a) (static_cast<int>(sizeof(a) / sizeof(*a)))

在学习C++模板的过程中,发现有另外一种方式,可以不用计算,直接得出数组大小,记录一下:

template<typename T, int n>
inline int arr_size(T(&)[n])
{
     return n;
}

  

posted @ 2018-03-21 17:25  挡不住风霜  阅读(1248)  评论(0编辑  收藏  举报