C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断
生活随笔
收集整理的這篇文章主要介紹了
C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 當用一個函數模板初始化一個函數指針或為一個函數指針賦值時, 編譯器使用指針的類型來推斷模板實參
template ctypename T> int compare (const T &, const T& );// pfl 指向實例 int compare (const int &, const int & ) int (*pf1) (const int&, const int& ) = compare;1.1 如果不能從函數指針類型確定模板實參, 則產生錯誤:
/ / func 的重栽版本; 每個版本接受一個不同的函數指針類型 void func (int ( * ) (const strings, const strings ) ); void func (int (*) (const int &, const int & ) ); func (compare); / / 錯誤: 使用 compare 的哪個實例?1.2 解決方法: 通過使用顯式模板實參來消除 func 調用的歧義
如下表達式調用的 func 版本接受一個函數指針, 該指針指向的函數接受兩個 const int &參數
// 正確: 顯式指出實例化哪個 compare 版本 func (compare<int>); // 傳遞 compare (const int&, const int&)總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)函数指针和实参推断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(cha
- 下一篇: C++ Primer 5th笔记(cha