一直觉得数组名传给函数的时候会退化为指针,单从一个指针无法求得数组长度. 前些时候,在网上搜了下,竟然可以利用模板来求出数组长度.实质上,是利用模板把编译器的东西读出来,很是巧妙.
代码如下:
1 template<typename T, int n>2 inline int arr_size(T (&)[n])3 {4 return n;5 }
posted on 2010-10-06 23:26 郁郁思扬 阅读(457) 评论(0) 编辑 收藏 举报