作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題Re: [問題] 取得array長度
時間Sat Jun 6 03:00:09 2009
※ 引述《yoco315 (眠月)》之銘言:
: ※ 引述《d5123 (dd)》之銘言:
: : 我用sizeof(array)/sizeof(array[0]);
: : 可得到此array之長度。
: : 但如我我想寫成一個方法,只要將array名稱當作參數,即可得到array長度。
: : 請問這該如何達成呢?
: template < class T, size_t N >
不好意思請教一下 ^^^^^^^^^^^
這邊這樣寫是因為compiler看到我們 寫了 T(&a)[N]用了"N" 才讓我們compile 過?
我在想說 如果我寫template < class T, double N >是不是就沒有任何用法或寫法
可以讓這個N有用武之地.....
我不太了解 這種<class T,擺一個內定型態的用法>
上網goo了一下template 也都只介紹<class T, class Q>這種多任意型態的
謝謝各位
: size_t len ( T (&a)[N] ) {
: return N ;
: }
: int main () {
: int a[10] ;
: cout << len(a) << endl ;
: }
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.207.187
推 POSIX:template argument 有三種, type/non-type/template 06/06 03:08
→ POSIX:你說的是第一種, 上面範例size_t 是第二種 06/06 03:08
推 legnaleurc:template 的參數是很自由的 06/06 03:45
→ QQ29:請教一下第三種是??? 是什麼特化偏特化嗎? 06/06 18:23
→ james732:template<template< ...> > 第三種應該是這類寫法? 06/06 18:27