• <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
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(5)

            隨筆分類(38)

            隨筆檔案(31)

            收藏夾(4)

            College

            High School

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 55886
            • 排名 - 407

            最新評論

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

            閱讀排行榜

            評論排行榜



            發信人: shifan (學習浮云技術), 板面: C++
            標  題: 偽typeof
            發信站: 飄渺水云間 (Tue Dec 19 16:38:45 2006), 轉信
             1 /*
             2 用標準C++實現typeof是不可能的
             3 這個是我寫的一個approached typeof
             4 所有需要被靜態反射出來的類型必須先用DECL_TYPE注冊
             5 模板如果僅僅帶有1個參數可以用DECL_TEMPLATE_1注冊
             6 多個參數的模板還不支持。。
             7 主要是沒想好編碼
             8 
             9 總共能注冊64個類型
            10 可以通過MAX_TYPE_NUMBER設置
            11 
            12 支持的模板嵌套層數大約為32 / log2(MAX_TYPE_NUMBER)
            13 MAX_TYPE_NUMBER必須為2的整次數冪
            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 撒法!

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

            FeedBack:
            # re: 偽typeof 2006-12-22 14:10 yayv
            C++標準中有RTTI阿,為什么不考慮下?  回復  更多評論
              
            # re: 偽typeof 2006-12-22 16:07 小山日志
            多個參數模板可不可以參考Loki里的Typelist來做,Template編程偶不熟,只是提議。

            to yayv:C++的RTTI是不能運行時創建對象的,shifan的題目改為“C++的模擬反射機制”合適些。  回復  更多評論
              
            # re: 偽typeof 2007-01-12 13:58 linghuchong
            寒,一開始以為是某些編譯器的類似sizeof的typeof關鍵字,結果發現不是……

            不過既然是動態的為什么要加這么多限制呢?  回復  更多評論
              
            # re: 偽typeof 2007-01-12 14:09 Francis Arcanum
            @linghuchong
            誰說是動態的?  回復  更多評論
              
            # re: [yc]偽typeof 2007-11-09 17:11 liuhs
            寫的不錯!  回復  更多評論
              
            # re: [yc]偽typeof 2008-07-22 22:51 xiaowei
            baidu 到 shifan大神的blog,進來膜拜一下  回復  更多評論
              
            # re: [yc]偽typeof 2009-01-07 17:17 lsxx
            我也在考慮這個,要是標準里有就好了  回復  更多評論
              
            # re: [yc]偽typeof[未登錄] 2011-12-31 00:40 春秋十二月
            模板功底的確不錯  回復  更多評論
              
            亚洲日本va午夜中文字幕久久| 久久精品成人| 久久久精品2019免费观看| 大伊人青草狠狠久久| 久久这里有精品视频| 伊人久久大香线蕉AV色婷婷色| 久久精品国产亚洲网站| 要久久爱在线免费观看| 久久夜色精品国产亚洲| 精品久久久久久国产| 久久高清一级毛片| 久久久久亚洲Av无码专| 中文成人无码精品久久久不卡| 97热久久免费频精品99| 亚洲人成无码网站久久99热国产| 国产精品福利一区二区久久| 狠狠精品久久久无码中文字幕| 久久亚洲中文字幕精品一区| 久久久国产精品网站| 久久精品中文无码资源站| 香蕉久久影院| 三级韩国一区久久二区综合 | 91精品国产91久久综合| 女人高潮久久久叫人喷水| 久久播电影网| 久久国产香蕉一区精品| 日韩亚洲欧美久久久www综合网| 久久久老熟女一区二区三区| 亚洲国产精品18久久久久久| 亚洲成av人片不卡无码久久| 久久精品国产亚洲精品| 久久久WWW成人| 久久露脸国产精品| 四虎久久影院| 久久久高清免费视频| 久久久久av无码免费网| 久久天天躁夜夜躁狠狠躁2022 | 亚洲狠狠婷婷综合久久蜜芽| 麻豆精品久久久久久久99蜜桃| 亚洲国产精品综合久久网络| 欧美亚洲国产精品久久|