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

CG@CPPBLOG

/*=========================================*/
隨筆 - 76, 文章 - 39, 評(píng)論 - 137, 引用 - 0
數(shù)據(jù)加載中……

《C++設(shè)計(jì)新思維》讀書筆記(12)

2.7 編譯期間偵測(cè)可轉(zhuǎn)換性和繼承性

在泛型編程中,經(jīng)常遭遇一個(gè)問(wèn)題:對(duì)于兩個(gè)型別TU,如何得知U是否繼承于T。我們需要在編譯時(shí)發(fā)現(xiàn)這樣的關(guān)系,而不必使用dynamic_cast——它會(huì)損耗執(zhí)行期效率。

我們利用sizeof 重載函數(shù)。比如如下定義兩個(gè)類型,和兩個(gè)函數(shù),一個(gè)函數(shù)接收U類型,一個(gè)接收任意類型。

1 typedef char Small;
2 class Big {char dummy[2];};
3 Small Test(U);
4 Big Test();//省略號(hào)參數(shù)函數(shù)

我們傳一個(gè)T類型對(duì)象給Test函數(shù),看它能不能轉(zhuǎn)換為U

1 const bool convExists = sizeof(Test(T())) == sizeof(Small);

但如果T的缺省構(gòu)造函數(shù)為私有,則會(huì)編譯失敗,所以我們用一個(gè)稻草人函數(shù)

1 T MakeT();
2 const bool convExists = sizeof(Test(MakeT())) == sizeof(Small);

我們注意,sizeof()里面的東西不需要具現(xiàn),所以T對(duì)象,MakeT()Test()都不需要實(shí)作。它們根本不真正存在!!現(xiàn)在用class template包裝起來(lái)。

 1 template<class T, class U>
 2 class Conversion
 3 {
 4     typedef char Small;
 5     class Big {char dummy[2];};
 6     static Small Test(U);
 7     static Big Test();
 8     static T MakeT();
 9 public:
10     // T可以轉(zhuǎn)換為U
11     enum {exists = sizeof(Test(MakeT())) == sizeof(Small)};
12     // 可以雙向轉(zhuǎn)換
13     enum {exists2Way = exists && conversion<U, T>::exists };
14     enum {sameType = false};
15 };
16 //利用偏特化處理 sameType == true 情況
17 template<class T>
18 class Conversion<T, T>
19 {
20 public:
21     enum { exists = 1, exists2Way = 1, sameType = 1};
22 };

最后,我們可以根據(jù)這個(gè)來(lái)判斷兩個(gè)類之間是否有繼承關(guān)系:

1 #define SUPER_SUB_CLASS(T, U)\
2            (Conversion<const U*const T*>::exists &&\
3            !Conversion<const T*const void*>::sameType)

如果U是共有繼承于T,或者TU是同一型別,SUPER_SUB_CLASS(T, U)都傳回true。這里加上const飾詞的原因是,我們不希望因const而導(dǎo)致轉(zhuǎn)換失敗,對(duì)一個(gè)型別const兩次,第二個(gè)const會(huì)被忽略。

posted on 2007-12-23 12:12 cuigang 閱讀(232) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 《C++設(shè)計(jì)新思維》讀書筆記

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美性视频网站| 亚洲视频第一页| 99re6这里只有精品| 国产精品二区影院| 欧美调教vk| 亚洲主播在线播放| 久久天堂国产精品| 亚洲激情成人| 欧美性色视频在线| 久久九九全国免费精品观看| 欧美激情麻豆| 先锋影音久久久| 亚洲第一区中文99精品| 欧美久久久久免费| 亚洲图片你懂的| 蜜臀va亚洲va欧美va天堂| 亚洲免费成人| 国产一区二区三区在线观看免费视频 | 国产日韩亚洲欧美| 欧美1区2区3区| 亚洲一区在线看| 亚洲国产天堂久久国产91| 亚洲一级网站| 一区二区在线不卡| 国产精品久久久久影院亚瑟 | 亚洲欧美激情一区二区| 亚洲黄色尤物视频| 国产一区日韩一区| 国产精品av免费在线观看| 久久精品一区二区| 在线视频亚洲一区| 亚洲欧洲综合另类| 免费看av成人| 久久免费视频一区| 欧美一区二区日韩| 亚洲亚洲精品在线观看| 亚洲美女黄色| 亚洲黄色天堂| 国产亚洲aⅴaaaaaa毛片| 欧美视频在线观看一区| 欧美激情黄色片| 久久天天躁狠狠躁夜夜av| 欧美一区二区三区另类| 亚洲午夜伦理| 一本色道久久综合| 亚洲精品在线看| 亚洲精品免费网站| 欧美日韩精品久久| 久久精品国产亚洲aⅴ| 亚洲精品日韩激情在线电影 | 国产精品99久久久久久宅男| 亚洲高清不卡在线观看| 欧美激情精品久久久久久大尺度| 欧美一二三区精品| 午夜在线a亚洲v天堂网2018| 亚洲一二三区在线| 亚洲一区二区三区久久| 亚洲欧美日韩综合一区| 亚洲男人第一网站| 亚洲免费一在线| 欧美中文字幕不卡| 久久久久久久久久久成人| 欧美在线一二三区| 久久亚洲精选| 欧美成年人网站| 亚洲国产视频一区| 99国内精品久久久久久久软件| 亚洲精品乱码| 亚洲午夜一级| 久久久久欧美精品| 两个人的视频www国产精品| 欧美激情久久久久| 国产九九视频一区二区三区| 极品日韩av| 亚洲精品综合精品自拍| 在线一区二区三区四区五区| 亚洲女女女同性video| 久久久亚洲影院你懂的| 亚洲高清视频一区二区| 亚洲精品一区在线| 羞羞答答国产精品www一本| 久久av红桃一区二区小说| 久久综合久色欧美综合狠狠 | 国产精品久久久久av免费| 国产精品一区二区三区成人| 亚洲成人自拍视频| 亚洲一区在线观看免费观看电影高清| 亚洲欧美在线免费观看| 美女脱光内衣内裤视频久久网站| 欧美电影资源| 日韩亚洲在线观看| 久久精精品视频| 欧美视频在线观看一区| 黄色国产精品一区二区三区| 9人人澡人人爽人人精品| 久久精品99国产精品| 亚洲黄色影片| 午夜欧美大尺度福利影院在线看| 免费91麻豆精品国产自产在线观看| 欧美日韩精品福利| 午夜精品福利视频| 中文日韩在线视频| 亚洲影音先锋| 一区二区三区免费观看| 91久久久久久久久久久久久| 亚洲欧美999| 亚洲日产国产精品| 久久综合五月| 韩日视频一区| 久久av资源网| 亚洲无吗在线| 欧美日韩国产小视频| 91久久精品一区二区别| 久久久久久久999| 亚洲一卡二卡三卡四卡五卡| 欧美人与性动交a欧美精品| 欲香欲色天天天综合和网| 欧美一区二区性| 亚洲网站啪啪| 国产精品久久久久久妇女6080| 亚洲精品一区久久久久久| 噜噜噜躁狠狠躁狠狠精品视频| 午夜精品视频| 国产日韩精品久久| 欧美一区二区三区四区在线| 亚洲一区二区三区精品视频| 欧美日韩一区二区高清| 9久草视频在线视频精品| 亚洲欧洲精品成人久久奇米网| 欧美电影电视剧在线观看| 亚洲激情在线视频| 欧美二区视频| 欧美精品国产精品| 亚洲一级黄色av| 亚洲综合色视频| 国产日产亚洲精品| 久久综合九色欧美综合狠狠| 久久久午夜电影| 最新69国产成人精品视频免费| 美国三级日本三级久久99| 葵司免费一区二区三区四区五区| 在线精品视频一区二区| 亚洲高清视频一区二区| 欧美视频在线免费看| 亚洲欧美伊人| 久久看片网站| 在线视频欧美日韩精品| 亚洲欧美日韩精品久久| 尤物精品在线| 亚洲人成免费| 国产精品人人爽人人做我的可爱| 欧美一区二区日韩一区二区| 久久精品国产亚洲aⅴ| 亚洲国产精品第一区二区| 亚洲裸体俱乐部裸体舞表演av| 欧美日韩在线免费观看| 久久国产精品99国产精| 欧美 日韩 国产在线| 亚洲综合精品自拍| 久久久久久网址| 一区二区三区四区蜜桃| 国产精品日韩在线观看| 欧美亚洲综合在线| 另类av导航| 亚洲综合色自拍一区| 久久噜噜噜精品国产亚洲综合 | 一本一本久久a久久精品牛牛影视| 日韩天堂在线视频| 狠狠色狠狠色综合| 亚洲美女中出| 亚洲风情在线资源站| 亚洲在线观看视频网站| 亚洲国产精品一区二区www在线| 在线视频精品一区| 亚洲第一中文字幕在线观看| 亚洲一区二区在线播放| 日韩视频一区二区三区在线播放免费观看 | 久久人人97超碰精品888| 欧美婷婷久久| 亚洲激情视频| 亚洲第一色中文字幕| 欧美亚洲系列| 亚洲专区国产精品| 欧美精品性视频| 你懂的国产精品| 国产在线国偷精品产拍免费yy| 99精品视频免费| 亚洲欧洲日产国码二区| 久久久久9999亚洲精品| 性欧美长视频| 国产精品av免费在线观看| 亚洲精品人人| 99精品免费网| 欧美韩国日本一区| 亚洲高清一二三区| 一区二区视频免费在线观看| 久久精品国产免费| 久久人体大胆视频| 在线观看欧美视频| 久久久久免费视频|