【C++ Primer 第16章】2. 模板實參推斷
阿新 • • 發佈:2018-05-24
ring strong 一個數 類型轉換 mic sof const對象 mil ++
模板實參推斷:對於函數模板,編譯器利用調用中的函數實參來確定模板參數,從函數實參來確定模板參數的過程被稱為模板實參推斷。
類型轉換與模板類型參數
與往常一樣,頂層const無論在形參中還是在是實參中,都被會忽略。
• const轉換:可以將一個非const對象的引用(或指針)傳遞給const的引用(或指針)形參。
• 數組或函數指針轉換:一個數組實參可以轉換為一個指向其首元素的指針。類似的,一個函數實參可以抓轉換一個該函數類型的指針。
1 template <typename T> T fobj(T, T) //實參被拷貝 2 template <typename T> T fret(constT&, 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. 模板實參推斷