看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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