#include <iostream>
// 求原生数组的长度
template <typename T, int size>
inline int arry_size (T (&ary)[size]) {
return size;
}
int main()
{
int sz[] = {1,2,3,4,5,6,7};
int len = arry_size(sz);
char* sz1[]={"1","2","3","4","5"};
int len1 = arry_size(sz1);
return 1;
// 求原生数组的长度
template <typename T, int size>
inline int arry_size (T (&ary)[size]) {
return size;
}
int main()
{
int sz[] = {1,2,3,4,5,6,7};
int len = arry_size(sz);
char* sz1[]={"1","2","3","4","5"};
int len1 = arry_size(sz1);
return 1;
}
T是表示数组类型,size是非类型模板形参,在调用该模板函数的时候直接用常量代替,是否非常直观?
T (&t)[size]表示arry_size 的参数是一个类型为T的数组,且长度为size