• <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>
            隨筆 - 31  文章 - 128  trackbacks - 0
            <2006年12月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(5)

            隨筆分類(38)

            隨筆檔案(31)

            收藏夾(4)

            College

            High School

            • 巧克力男
            • 猶大
            • 哈哈,同行了

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 55886
            • 排名 - 407

            最新評(píng)論

            • 1.?re: [yc]詳解link
            • 面試的時(shí)候面試官就問(wèn)過(guò)我什么是編譯和鏈接,我說(shuō)編譯就是把代碼文件生成目標(biāo)文件,鏈接就是把目標(biāo)文件生成可執(zhí)行文件,他說(shuō)不對(duì),又問(wèn)我什么是動(dòng)態(tài)鏈接,還問(wèn)我預(yù)編譯都做什么處理。。。都在這里找到了答案?。。?!
            • --王至乾
            • 2.?re: [yc]詳解link
            • @劉偉
              我是說(shuō)博主,不是叫你啊
            • --溪流
            • 3.?re: [yc]詳解link
            • 誰(shuí)是石老師,我不是哈@溪流
            • --劉偉
            • 4.?re: [yc]詳解link
            • 石老師?我是溪流~
            • --溪流
            • 5.?re: [yc]詳解link
            • 期待樓主下文啊,多謝樓主了
            • --劉偉

            閱讀排行榜

            評(píng)論排行榜



            發(fā)信人: shifan (學(xué)習(xí)浮云技術(shù)), 板面: C++
            標(biāo)  題: 偽typeof
            發(fā)信站: 飄渺水云間 (Tue Dec 19 16:38:45 2006), 轉(zhuǎn)信
             1 /*
             2 用標(biāo)準(zhǔn)C++實(shí)現(xiàn)typeof是不可能的
             3 這個(gè)是我寫(xiě)的一個(gè)approached typeof
             4 所有需要被靜態(tài)反射出來(lái)的類型必須先用DECL_TYPE注冊(cè)
             5 模板如果僅僅帶有1個(gè)參數(shù)可以用DECL_TEMPLATE_1注冊(cè)
             6 多個(gè)參數(shù)的模板還不支持。。
             7 主要是沒(méi)想好編碼
             8 
             9 總共能注冊(cè)64個(gè)類型
            10 可以通過(guò)MAX_TYPE_NUMBER設(shè)置
            11 
            12 支持的模板嵌套層數(shù)大約為32 / log2(MAX_TYPE_NUMBER)
            13 MAX_TYPE_NUMBER必須為2的整次數(shù)冪
            14 */
            15 namespace my_typeof
            16 {
            17 
            18   const int MAX_TYPE_NUMBER = 64;
            19 
            20   template <int N>
            21   struct dummy
            22   {
            23     int a[N];
            24   };
            25 
            26 
            27   template <int N, typename Arg1>
            28   struct select_by_number_1;
            29 
            30   template <int N>
            31   struct select_by_number
            32   {
            33     typedef typename select_by_number_1<% MAX_TYPE_NUMBER, typename
            34 select_by_number</ MAX_TYPE_NUMBER>::type>::type type;
            35   };
            36 
            37 
            38   template <typename T>
            39   struct number_of
            40   {
            41     static const int v = sizeof(generic_f(*(T*)0)) / sizeof(int);
            42   };
            43 
            44 
            45 #define DECL_TYPE(T, N) \
            46   namespace my_typeof{  \
            47   template<>\
            48   struct select_by_number<N> \
            49   {\
            50     typedef T type;\
            51   };\
            52   dummy <N> generic_f(const T&);}
            53 
            54 
            55 #define DECL_TEMPLATE_1(T, N) \
            56   namespace my_typeof{        \
            57   template<typename Arg1>\
            58   struct select_by_number_1<N, Arg1>\
            59   {\
            60     typedef T<Arg1> type;\
            61   };\
            62   template <typename Arg1>\
            63   dummy<+ number_of<Arg1>::v * MAX_TYPE_NUMBER > generic_f(const T<Arg1>&);}
            64 
            65 
            66 
            67 #define TYPE_OF(x) my_typeof::select_by_number<sizeof(my_typeof::generic_f(x)) /
            68 sizeof (int)>::type
            69 
            70 }
            71 
            72 
            73 //sample
            74 #include <iostream>
            75 #include <vector>
            76 #include <list>
            77 
            78 
            79 DECL_TYPE(int1);
            80 DECL_TEMPLATE_1(std::vector, 2);
            81 DECL_TEMPLATE_1(std::list, 3);
            82 DECL_TYPE(double4)
            83 
            84 using namespace std;
            85 int main(intchar*[])
            86 {
            87   vector<list<vector<list<double> > > > v1;
            88   TYPE_OF(v1) v2;
            89   v1 = v2;
            90   return 0;
            91 }
            92 
            93 


            --
            You well 撒法!You well all 撒法!

            ※ 內(nèi)容修改:·shifan 于 Dec 21 14:21:57 修改本文內(nèi)容·[FROM: shifan]
            ※ 來(lái)源:·飄渺水云間 freecity.cn·[FROM: shifan]
            posted on 2006-12-21 14:29 shifan3 閱讀(2644) 評(píng)論(8)  編輯 收藏 引用 所屬分類: templateC++

            FeedBack:
            # re: 偽typeof 2006-12-22 14:10 yayv
            C++標(biāo)準(zhǔn)中有RTTI阿,為什么不考慮下?  回復(fù)  更多評(píng)論
              
            # re: 偽typeof 2006-12-22 16:07 小山日志
            多個(gè)參數(shù)模板可不可以參考Loki里的Typelist來(lái)做,Template編程偶不熟,只是提議。

            to yayv:C++的RTTI是不能運(yùn)行時(shí)創(chuàng)建對(duì)象的,shifan的題目改為“C++的模擬反射機(jī)制”合適些。  回復(fù)  更多評(píng)論
              
            # re: 偽typeof 2007-01-12 13:58 linghuchong
            寒,一開(kāi)始以為是某些編譯器的類似sizeof的typeof關(guān)鍵字,結(jié)果發(fā)現(xiàn)不是……

            不過(guò)既然是動(dòng)態(tài)的為什么要加這么多限制呢?  回復(fù)  更多評(píng)論
              
            # re: 偽typeof 2007-01-12 14:09 Francis Arcanum
            @linghuchong
            誰(shuí)說(shuō)是動(dòng)態(tài)的?  回復(fù)  更多評(píng)論
              
            # re: [yc]偽typeof 2007-11-09 17:11 liuhs
            寫(xiě)的不錯(cuò)!  回復(fù)  更多評(píng)論
              
            # re: [yc]偽typeof 2008-07-22 22:51 xiaowei
            baidu 到 shifan大神的blog,進(jìn)來(lái)膜拜一下  回復(fù)  更多評(píng)論
              
            # re: [yc]偽typeof 2009-01-07 17:17 lsxx
            我也在考慮這個(gè),要是標(biāo)準(zhǔn)里有就好了  回復(fù)  更多評(píng)論
              
            # re: [yc]偽typeof[未登錄](méi) 2011-12-31 00:40 春秋十二月
            模板功底的確不錯(cuò)  回復(fù)  更多評(píng)論
              
            国内精品久久久久久不卡影院| 亚洲嫩草影院久久精品| 久久天天躁狠狠躁夜夜2020| 午夜精品久久久久久久无码| 国产aⅴ激情无码久久| 久久久久久免费一区二区三区 | 久久久久AV综合网成人| 99久久99久久精品国产片果冻| 久久亚洲AV永久无码精品| 色诱久久久久综合网ywww| 久久成人永久免费播放| 久久精品蜜芽亚洲国产AV| 久久久久亚洲AV成人网| 国产精品久久久久久福利69堂| 性做久久久久久久久老女人| 日本精品久久久中文字幕| 人妻少妇久久中文字幕一区二区| 久久男人AV资源网站| 青青草原综合久久大伊人精品| 亚洲午夜久久久久久噜噜噜| 久久久久国色AV免费看图片| 精品国产福利久久久| 久久久久亚洲av无码专区喷水 | 国产精品久久久久久五月尺| 伊人久久综合热线大杳蕉下载| 亚洲午夜久久久影院伊人| 一本久久综合亚洲鲁鲁五月天| 精品无码人妻久久久久久 | 久久这里只有精品视频99| 久久本道伊人久久| 99久久er这里只有精品18| 久久精品国产99久久久古代| 色婷婷狠狠久久综合五月| 久久精品成人免费观看97| 久久精品99无色码中文字幕| 国产毛片久久久久久国产毛片| 热久久这里只有精品| 麻豆精品久久久一区二区| 91久久精品视频| 66精品综合久久久久久久| 国产午夜福利精品久久|