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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C/Cpp / STL / 模板全特化和偏特化

發布時間:2024/10/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C/Cpp / STL / 模板全特化和偏特化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

栗子

#include <iostream>template <typename T1, typename T2> struct Test {void Print() { std::cout << "原生版本" << std::endl; } };template <typename T2> struct Test<float, T2> {void Print() { std::cout << "偏特化版本" << std::endl; } };template <> struct Test<int, double> {void Print() { std::cout << "全特化版本" << std::endl; } };int main() {Test<double, int> t1;t1.Print();Test<float, double> t2;t2.Print();Test<int, double> t3;t3.Print();return 0; }

結果

原生版本 偏特化版本 全特化版本

說明

模板特化,顧名思義,就是對于模板類,針對特定的數據類型進行再次聲明,從而達到模板特殊處理的目的。這里面的特化分為偏特化全特化,區別如下:

  • 偏特化是指定了部分類型,所以偏特化版本稱為原生版本的子集。若實例化時參數類型為指定的類型,則優先調用特例化版本的代碼。
  • 偏特化本質上其還是模板。
  • 全特化本質上是一個實例,當編譯器匹配時會優先匹配參數一致的實例

模板特化的功能在STL中廣泛使用,例如?__type_traits ,通過模板特化,可以達到判斷型別是否是原生類型、指針類型以及類類型的目的。

?

(SAW:Game Over!)

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的C/Cpp / STL / 模板全特化和偏特化的全部內容,希望文章能夠幫你解決所遇到的問題。

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