青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

類型特化 -- Type-traits

個人理解這個東西說白了就是當模板類(或函數)的類型參數為某特定值時用對應的特化定義代之。

  看個例子吧

 

#include <iostream>

using namespace std;

template<typename T>

struct is_void

{

   static const bool value = false;

};

/* 上面的代碼定義了一個簡單的模板結構is_void的主版本,無論類型參數T是何值,

 * 結構體的靜態常量成員value的值都是false,這當然是無意義的,我們需要當且

 * 僅當類型參數Tvoid時,value成員的值為true,于是我們定義下面的特化版本

 * /

template<>

struct is_void<void>

{

   static const bool value = true;

};

/* 這里定義了一個is_void結構體的特化版本,將類型參數T固定為void,此時value

 * 成員的值被設定為true

 * /

 

int main(int argc, char* argv[])

{

   cout << is_void<void>::value << endl;

   cout << is_void<int>::value << endl;

   cout << is_void<bool>::value << endl;

   return 0;

}

 

這段代碼輸出為:

1

0

0

 

以上代碼中,當is_void結構體的模板類型參數T被指定時,編譯器將檢查該結構體的主版本及所有特化版本,如果類型參數與某一特化版本匹配,則該特化版本將被調用,如果沒有匹配的特化版本,則調用主版本。也就是說如果T的實參為void,與我們定義的特化版本的參數一至,則此特化版本的定義被應用,如果T不是void則按主版本的定義展開。

 

上面的例子屬于全特化(full-specialisation),也就是所有的類型參數都被確定為實際類型,但有時我們可以需要對參數進行部分而不是完全的限定,這便是偏特化(partial template-class specialisation)。

看下面的例子

 

template<typename T>

struct is_pointer

{

   static const bool value = false;

};

template<typename T>

struct is_pointer<T*>

{

   static const bool value = true;

};

 

這個例子中我們試圖判斷模板參數T是否是指針類型,如果是則value成員設為true,如果不是則置為false。然而無論T是不是指針都不可能被一一列舉,也就是我們不能像第一個例子一樣對諸如void*, int*, long*, char* .... 等等等等一一特化,這工作量太嚇人了,我要需要一種方式來將指針的情況一次性特化,這就是例子中應用的方式:偏特化。偏特化的寫法我想不難理解,但注意兩個版本中的T是不一樣的,我們可以把特化版本的T換成T2是沒有問題的,這時對于is_pointer<int*>來講,T代表int*,而T2代表的只是int,大家可以揣摩一下。這也就間接說明了主版本和特化版本允許不同個數的模板參數的原因。

 

再來一個怪異一點的例子

template <typename T>

struct remove_bounds

{

   typedef T type;

};

template <typename T, size_t N>

struct remove_bounds<T[N]>

{

   typedef T type;

};

remove_bounds<int>::type a;

remove_bounds<int[5]>::type b;

remove_bounds<int[5][6]>::type c;

 

remove_bounds也就是將一個數組類型的[n]去掉即得到其基礎類型,如果是非數組類型則返回原類型。于是上面的例子中,a是個int類型的變量,而b也是int類型,c有點怪,它不是int[5]類型,而是int[6]類型。這個例子也說明一個問題,特化版本與主版本的類型參數不一定一樣,但typename修飾的類型參數個數是一致的。

 

posted on 2008-11-08 22:57 肥仔 閱讀(457) 評論(0)  編輯 收藏 引用 所屬分類: C++ 模板

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲每日在线| 久久精品一二三区| 99热精品在线| 麻豆精品传媒视频| 亚洲欧美成人一区二区在线电影| 欧美第一黄色网| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美一级专区免费大片| 国产精品hd| 午夜久久久久久| 午夜在线一区| 国产一区观看| 久久人人爽人人爽| 久久人人爽爽爽人久久久| 精品不卡视频| 亚洲风情在线资源站| 另类尿喷潮videofree| 一区二区三区中文在线观看| 久久色在线观看| 久久深夜福利免费观看| 亚洲福利视频在线| 亚洲国产福利在线| 欧美日韩亚洲不卡| 小黄鸭视频精品导航| 在线中文字幕日韩| 在线亚洲观看| 一区二区三区精密机械公司| 欧美日韩国产成人精品| 亚洲一区成人| 欧美一级午夜免费电影| 黄色在线一区| 最近中文字幕mv在线一区二区三区四区| 你懂的亚洲视频| 亚洲尤物在线视频观看| 香蕉久久a毛片| 亚洲黄色一区| 亚洲视频一区| 亚洲福利视频二区| 9i看片成人免费高清| 狠狠色丁香婷综合久久| 91久久国产精品91久久性色| 国产精品国产自产拍高清av| 久久久激情视频| 欧美激情1区2区3区| 午夜免费久久久久| 免费日韩精品中文字幕视频在线| 亚洲视频在线观看三级| 欧美亚洲一区二区在线观看| 日韩午夜精品视频| 欧美在线一区二区| 在线视频免费在线观看一区二区| 欧美一区二区免费| 一区二区三区精密机械公司| 香蕉乱码成人久久天堂爱免费| 亚洲人久久久| 久久成人国产精品| 中国成人亚色综合网站| 久久激情婷婷| 亚洲欧美高清| 欧美美女操人视频| 久久免费视频在线观看| 国产精品成人aaaaa网站| 欧美成人国产一区二区| 国产欧美日韩高清| 99re热精品| 亚洲精品在线视频| 久久香蕉国产线看观看网| 亚洲在线一区| 欧美日韩国产成人| 亚洲二区视频| 1024亚洲| 久久精品亚洲热| 欧美专区在线观看| 国产精品久久久久久超碰| 亚洲激情视频网站| 亚洲韩日在线| 裸体丰满少妇做受久久99精品| 亚洲男女自偷自拍| 欧美日韩在线三级| 亚洲久久成人| 一本大道久久a久久精品综合| 美女视频黄 久久| 久久亚洲精品欧美| 国内外成人在线| 欧美一区二区三区喷汁尤物| 欧美一区二区三区久久精品茉莉花 | 母乳一区在线观看| 欧美成人免费va影院高清| 欧美日韩亚洲一区二区三区在线 | 欧美aaa级| 亚洲电影激情视频网站| 久久久99免费视频| 乱人伦精品视频在线观看| 国产一区二区久久久| 欧美一级久久| 可以免费看不卡的av网站| 激情欧美一区二区| 欧美va亚洲va香蕉在线| 欧美大片在线观看一区| 亚洲国产一区二区三区a毛片 | 亚洲天堂激情| 国产精品久久久久永久免费观看 | 国产精品一区二区久久| 亚洲小说欧美另类婷婷| 欧美一区二区网站| 好看不卡的中文字幕| 久久一区中文字幕| 91久久精品网| 亚洲欧美日韩国产成人精品影院| 国产免费观看久久黄| 欧美中文在线免费| 亚洲第一天堂无码专区| 亚洲深夜福利视频| 国产精品永久免费视频| 久久久97精品| 亚洲乱码精品一二三四区日韩在线 | 国产免费一区二区三区香蕉精| 午夜精品久久久久久久久久久久久| 久久精品论坛| 亚洲三级影院| 国产精品久久久久三级| 久久蜜臀精品av| 99riav久久精品riav| 久久久国产午夜精品| 亚洲免费不卡| 国产亚洲午夜| 欧美精品日韩| 欧美亚洲在线观看| 最新国产の精品合集bt伙计| 欧美一区二区观看视频| 亚洲精品久久久久| 国产欧美日韩一级| 欧美母乳在线| 久久蜜臀精品av| 亚洲在线一区| 亚洲国产美女精品久久久久∴| 久久gogo国模裸体人体| 亚洲乱码国产乱码精品精| 国内外成人在线视频| 欧美视频中文一区二区三区在线观看| 久久精品91| 亚洲一区在线观看视频 | 亚洲欧美韩国| 亚洲精品小视频在线观看| 久久人人爽爽爽人久久久| 亚洲在线一区二区三区| 亚洲精品少妇| 国外成人免费视频| 国产欧美日韩在线观看| 欧美日韩在线另类| 免费在线观看成人av| 国产精品日韩一区| 国内精品久久久久影院色| 欧美韩日一区二区三区| 久久99在线观看| 一区二区三区精品视频在线观看| 欧美二区在线| 美女91精品| 久久久久在线| 欧美影院成人| 午夜精品久久久久久99热| 99成人在线| 亚洲精品乱码久久久久久黑人| 黄页网站一区| 极品日韩av| 影视先锋久久| 伊人精品成人久久综合软件| 国产精品影音先锋| 国产精品入口尤物| 国产精品一区二区三区免费观看 | 国产精品久久毛片a| 欧美色视频日本高清在线观看| 欧美大香线蕉线伊人久久国产精品| 久久免费视频这里只有精品| 久久久久久久一区| 老鸭窝毛片一区二区三区| 久久欧美中文字幕| 老司机精品视频网站| 欧美 亚欧 日韩视频在线| 欧美黑人国产人伦爽爽爽| 欧美激情一区二区三区四区| 欧美老女人xx| 欧美天堂亚洲电影院在线观看| 欧美亚洲成人免费| 国产欧美日韩亚州综合| 国产亚洲欧美激情| 激情久久一区| 最近看过的日韩成人| 日韩午夜在线| 亚洲欧美另类在线观看| 久久成人人人人精品欧| 久久日韩精品| 91久久精品国产| 中国女人久久久| 欧美一级免费视频| 老鸭窝亚洲一区二区三区| 欧美精品手机在线| 国产欧美精品日韩| 亚洲电影有码| 亚洲伊人伊色伊影伊综合网 |