日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断

發布時間:2025/3/21 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 模板實參推斷( template argument deduction)

在模板實參推斷過程中, 編譯器使用函數調用中的實參類型來尋找模板實參, 用這些模板實參生成的函數版本與給定的函數調用最為匹配。

1.1 實參類型轉換

如果一個函數形參的類型使用了模板類型參數, 那么它采用特殊的初始化規則。 類型轉換:

  • const轉換。可以將一個非const對象的指針或者引用傳遞給一個const指針或者引用形參。
  • 數組或函數指針轉換,如果函數形參不是引用類型,則可以對數組或者函數類型的實參應用正常的指針轉換

但是

  • 編譯器通常不是對實參進行類型轉換,而是生成一個新的模板實例。
  • 其他的類型轉換,如算術轉換,派生類向基類的轉換,以及用戶自定義的轉換,都不能應用于函數模板的實參。
template <typename T> T fobj(T, T);//實參是被拷貝 template <typename T> T fref(const T &, const T &);//引用string s1("a value"); const string s2("another value"); fobl(s1, s2);//調用fobj(string ,string);忽略頂層constfref(s1, s2);//調用的是,fref(const string &, const string &), s1轉換為const是允許的。int a[10], b[30]; fobj(a, b);//調用的是,fobj(int *, int *) fref(a, b);//錯誤,數組的類型不一致。

1.2 使用相同模板參數類型的函數形參

一個模板類型參數可以用作多個函數形參的類型。 由于只允許有限的幾種類型轉換,因此傳遞給這些形參的實參必須具有相同的類型。 如果推斷出的類型不匹配, 則調用就是錯誤的。

eg, compare 函數接受兩個 const T &參數, 其實參必須是相同類型: long lng; compare (lng, 1024 ); / / 錯誤: 不能實例化 compare (long, int )
  • 解決方法:將函數模板定義為兩個類型參數:
//實參類型可以不同, 但必須兼容 template ctypename A, typename B> int flexibleCompare (const A& vl, const B& v2){if (vl < v2) return -1;if (v2 < vl) return 1/return 0; } long lng; flexibleCompare (lng, 1024 ); / / 正確: 調用 flexibleCompare (long, int )

1.3 正常類型轉換應用于普通函數實參

函數模板可以有用普通類型定義的參數, 即, 不涉及模板類型參數的類型。 這種函數實參不進行特殊處理; 它們正常轉換為對應形參的類型。

eg.

template <typename T> ostream Sprint (ostream &os, const T &obj ) {return os ? obj; }print (cout, 42 ); // 實例化 print (ostream&, int ) ofstream f ("output" ); print (f, 10); // 使用 print (ostream&, int ) ; 將 f 轉換為 ostream&

總結

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 16 模板和泛型编程)模板实参推断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产粉嫩在线 | 波多野结衣高清视频 | 国产伦精品一区二区三区高清版 | 一本一道无码中文字幕精品热 | 光溜溜视频素材大全美女 | 日韩一区二区三区在线看 | 亚洲永久无码精品一区二区 | 午夜精品一区二区三区在线视频 | 日韩国产一区二区三区 | 日韩一区在线视频 | 请用你的手指扰乱我吧 | 久久精品99国产 | 日本www视频在线观看 | 免费看国产黄色 | 成人v精品蜜桃久一区 | 亚洲欧美日韩综合一区二区 | 色婷婷激情综合 | 夫妻毛片 | 欧美激情成人 | 国产精品影片 | 人成网站在线观看 | 国产三级全黄裸体 | av网站久久| aaa欧美 | 欧美日韩一区在线播放 | 一级特黄肉体裸片 | 天堂bt在线 | 伊人一区二区三区 | 国产系列精品av | 欧美激情精品久久久久久变态 | 法国空姐在线观看完整版 | 激情中文网 | 国产精品无 | 99在线精品免费视频 | 激情综合啪啪 | 欧美四虎 | 成年网站在线 | 午夜有码| 青娱网电信一区电信二区电信三区 | 成人动漫视频 | 久久精品这里有 | 男人天堂1024| 亚洲三级在线视频 | 中日韩午夜理伦电影免费 | 人妻 日韩 欧美 综合 制服 | 亚洲97视频 | 久久久91| 精品妇女一区二区三区 | 亚洲精品视频网 | 国产精品毛片久久久 | 无码h肉动漫在线观看 | 中文字幕在线视频一区 | 炕上如狼似虎的呻吟声 | 亚洲区第一页 | 国产成人无码精品亚洲 | 国产网站免费在线观看 | 日本天天色 | 日韩一级中文字幕 | 91gao| 久久91亚洲精品中文字幕奶水 | 9久久精品 | 精品国产一区二区三区av性色 | 肥老熟妇伦子伦456视频 | 中文欧美日韩 | 成人免费xxxxx在线观看 | 婷婷激情六月 | 亚洲深夜福利视频 | 夜夜操av | 日韩成人免费在线视频 | 麻豆一区二区三区在线观看 | 91丨porny丨海角社区 | 欧美在线播放视频 | 日本国产三级xxxxxx | 超爽视频| 国产在线激情视频 | 精品午夜久久久 | 亚洲美女自拍 | 久久久香蕉网 | 欧美jizz欧美性大全 | 久久99久久99精品蜜柚传媒 | 丰满孕妇性春猛交xx大陆 | 亚洲福利在线播放 | 亚洲麻豆一区 | 成人爱爱 | 成人在线网址 | 成人精品动漫 | 色久综合| 亚洲国产剧情在线观看 | 人人妻人人爽一区二区三区 | 国产中文字幕一区 | 国产精品一区二区久久国产 | 蜜桃久久精品成人无码av | 夫の上司に犯波多野结衣853 | 少妇在线 | 国产一区自拍视频 | 久久色婷婷 | 日韩www视频| 国产资源免费 | 懂色av色吟av夜夜嗨 |