1. 程式人生 > >【C++ Primer 第16章】2. 模板實參推斷

【C++ Primer 第16章】2. 模板實參推斷

ring strong 一個數 類型轉換 mic sof const對象 mil ++

模板實參推斷:對於函數模板,編譯器利用調用中的函數實參來確定模板參數,從函數實參來確定模板參數的過程被稱為模板實參推斷。

類型轉換與模板類型參數

與往常一樣,頂層const無論在形參中還是在是實參中,都被會忽略。

• const轉換:可以將一個非const對象的引用(或指針)傳遞給const的引用(或指針)形參。

• 數組或函數指針轉換:一個數組實參可以轉換為一個指向其首元素的指針。類似的,一個函數實參可以抓轉換一個該函數類型的指針。

 1 template <typename T> T fobj(T, T)  //實參被拷貝
 2 template <typename T> T fret(const
T&, const T&) //引用 3 4 string s1("a value"); 5 const strng s2("another value"); 6 fobj(s1, s2); //調用fobj(string, string); const被忽略 7 fret(s1, s2); //調用fret(const string&, const string&); const被忽略 8 9 int a[10], b[42]; 10 fobj(a, b); //調用fobj(int*, int*); 11 fret(a, b); //
錯誤

【C++ Primer 第16章】2. 模板實參推斷