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

visualfc

  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  42 隨筆 :: 0 文章 :: 119 評(píng)論 :: 0 Trackbacks
原創(chuàng) visualfc

介紹一個(gè)通用c++ typeid實(shí)現(xiàn).

主要功能:
    通用的typeid實(shí)現(xiàn),可以在VS60/VS2005以及mingw32下保證相同的類型名輸出.
    程序使用boost::type_traits來實(shí)現(xiàn),沒有使用內(nèi)置的typeid.不支持RTTI操作.

項(xiàng)目地址:
    http://code.google.com/p/typeid

程序例子:
  1.  vfc::type_id(100).name();    // output "int"
  2.  vfc::type_id_t<int>::name(); // output "int"
  3.  vfc::type_id_t<const int &>::name(); // output "int const &"

  4.  struct a 
  5.  {
  6.      const int * test(intconst char *);
  7.  };
  8.  VFC_MAKE_ID(a,0x2003);

  9.  vfc::type_id(&a::test).name(); //output  "int const * (a::*)(int,char const *)"
主要類介紹:
   template<typename T>  vfc::type_id_t<>  獲取類型的typeid名
   template<typename T>  vfc::type_id(const T & t) 獲取變量的類型的type_id_t類型.

主要函數(shù):
   type_id(100).std_name() 輸出 std::string 類型的name
   type_id(100).name()     輸出 const char * 類型的name

定義類型:
   VFC_TYPE_ID(type,id) 實(shí)現(xiàn)類型的定義,type為類型,id為類型自定義數(shù)值標(biāo)識(shí)
例: VFC_TYPE_ID(std::string,0x2001)


下面給出一個(gè)完整的例子:  

  1. #include "vfc_type.h"
  2. struct a
  3. {
  4.     const int * test(int,int)
  5.     {
  6.         return NULL;
  7.     }

  8.     void test1() const
  9.     {
  10.     }
  11.     const char * test2(intintvolatile
  12.     {
  13.         return NULL;
  14.     }
  15.     const int & test3(int *, const char *) const volatile
  16.     {
  17.         static int i = 100;
  18.         return i;
  19.     }
  20. };

  21. void test(const char *, int k)
  22. {
  23. };

  24. VFC_TYPE_ID(a,0x2000);



  25. int main(int argc, char* argv[])
  26. {
  27.     typedef void (*T1)(void);
  28.     typedef int (*T2)(void);
  29.     typedef int (*T3)(int,int,int,int,int,int,int,int,int);
  30.     typedef const char * (*T4)(int &,int *,char **,char &,const int &);

  31.     typedef int U1;
  32.     typedef int U2[5];
  33.     typedef const int & U3;
  34.     typedef char U4[5][6][7];

  35.     printf("T1 type %s\n",vfc::type_id_t<T1>::name());
  36.     printf("T2 type %s\n",vfc::type_id_t<T2>::name());
  37.     printf("T3 type %s\n",vfc::type_id_t<T3>::name());
  38.     printf("T4 type %s\n",vfc::type_id_t<T4>::name());

  39.     printf("U1 type %s\n",vfc::type_id_t<U1>::name());
  40.     printf("U2 type %s\n",vfc::type_id_t<U2>::name());
  41.     printf("U3 type %s\n",vfc::type_id_t<U3>::name());
  42.     printf("U4 type %s\n",vfc::type_id_t<U4>::name());

  43.     printf("\'d\' type %s\n",vfc::type_id('d').name());
  44.     printf("100 type %s\n",vfc::type_id(100).name());
  45.     printf("100.0 type %s\n",vfc::type_id(100.0).name());
  46.     printf("\"str\" type %s\n",vfc::type_id("str").name());

  47.     const char * str = "ok";
  48.     printf("const char * str type %s\n",vfc::type_id(str).name());

  49.     a * pa;
  50.     printf("a type %s\n",vfc::type_id_t<a>::name());
  51.     printf("pa type %s\n",vfc::type_id(pa).name());
  52.     printf("a::test type %s\n",vfc::type_id(&a::test).name());
  53.     printf("a::test type %s\n",vfc::type_id(&a::test1).name());
  54.     printf("a::test type %s\n",vfc::type_id(&a::test2).name());
  55.     printf("a::test type %s\n",vfc::type_id(&a::test3).name());
  56.     printf("test %s\n",vfc::type_id(&test).name());

  57.     return 0;
  58. }
在VS60,VS2005和mingw32下編譯得到相同輸出結(jié)果如下:
  1. T1 type void (*)()
  2. T2 type int (*)()
  3. T3 type int (*)(int,int,int,int,int,int,int,int,int)
  4. T4 type char const * (*)(int &,int *,char * *,char &,int const &)
  5. U1 type int
  6. U2 type int [5]
  7. U3 type int const &
  8. U4 type char [7] [6] [5]
  9. 'd' type char
  10. 100 type int
  11. 100.0 type double
  12. "str" type char [4]
  13. const char * str type char const *
  14. a type a
  15. pa type a *
  16. a::test type int const * (a::*)(int,int)
  17. a::test type void (a::*)()const
  18. a::test type char const * (a::*)(int,int)volatile
  19. a::test type int const & (a::*)(int *,char const *)const volatile
  20. test void (*)(char const *,int)
posted on 2008-11-03 22:22 visualfc 閱讀(2294) 評(píng)論(2)  編輯 收藏 引用 所屬分類: C++

評(píng)論

# re: 通用C++ typeid實(shí)現(xiàn)(不支持RTTI) 2008-11-04 00:06 踏雪赤兔
看了一下代碼,貌似不是線程安全的,呵呵~
繼續(xù)努力!  回復(fù)  更多評(píng)論
  

# re: 通用C++ typeid實(shí)現(xiàn)(不支持RTTI)[未登錄] 2008-11-04 07:58 visualfc
謝謝提醒.
看來為了線程安全, 可能得將type_id_t<T>::name()接口改為type_id_t<T>().name()了.  回復(fù)  更多評(píng)論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 午夜精品久久久久久久99樱桃| 国产模特精品视频久久久久| 亚洲成在人线av| 国产欧美精品日韩精品| 亚洲欧洲日本在线| 亚洲国产精品久久久久久女王| 亚洲一区二区三区中文字幕在线| 日韩视频中文字幕| 久久综合色综合88| 老司机一区二区| 国内精品免费在线观看| 亚洲欧美美女| 欧美一区二区三区久久精品茉莉花| 欧美日韩国产在线看| 91久久久在线| 亚洲全黄一级网站| 牛夜精品久久久久久久99黑人| 麻豆91精品| 一区免费在线| 久久久最新网址| 免费av成人在线| 一区二区三区在线不卡| 久久久7777| 嫩草伊人久久精品少妇av杨幂| 狠狠色狠狠色综合日日五| 欧美一区午夜视频在线观看| 久久久久久自在自线| 国产一区日韩二区欧美三区| 欧美一区激情| 久久综合色天天久久综合图片| 国内精品视频一区| 久久野战av| 亚洲精品国产拍免费91在线| 夜夜狂射影院欧美极品| 欧美日韩一区国产| 午夜精品网站| 美国三级日本三级久久99| 在线免费一区三区| 欧美激情视频一区二区三区免费| 亚洲三级免费电影| 午夜精品国产精品大乳美女| 国产日韩一区二区三区在线| 久久久精品午夜少妇| 亚洲国产91色在线| 亚洲综合成人在线| 国产主播一区二区| 欧美黄色成人网| 亚洲视频观看| 久热国产精品| 99在线热播精品免费| 国产精品裸体一区二区三区| 欧美一级理论性理论a| 欧美大片一区二区三区| 中文一区二区| 国产在线视频不卡二| 欧美激情精品久久久久久免费印度 | 亚洲精品日本| 欧美视频在线观看一区| 欧美一区二区精品| 亚洲国产一区在线观看| 欧美一区二区性| 亚洲黄色影片| 国产欧美日韩视频一区二区三区| 久久亚洲不卡| 国产精品99久久久久久有的能看 | 91久久精品国产91性色| 亚洲一区在线播放| 亚洲成人在线视频播放| 国产精品乱码久久久久久| 久久美女性网| 亚洲欧美另类中文字幕| 亚洲品质自拍| 男人的天堂亚洲| 久久riav二区三区| 一区二区欧美日韩| 在线看视频不卡| 国产精品一区在线观看| 欧美丰满少妇xxxbbb| 亚洲主播在线观看| 99re热这里只有精品免费视频| 久久最新视频| 久久爱另类一区二区小说| 国产精品99久久99久久久二8| 亚洲国产成人av| 国产麻豆视频精品| 国产精品第一区| 欧美日韩视频专区在线播放| 老司机精品导航| 久久精品日产第一区二区| 午夜激情综合网| 中国成人亚色综合网站| 亚洲精品欧美在线| 亚洲区一区二| 亚洲人久久久| 亚洲国产精品传媒在线观看 | 91久久久久久国产精品| 国内久久视频| 国内精品视频在线观看| 国产欧美日韩在线视频| 国产精品免费看| 国产精品mm| 国产精品扒开腿做爽爽爽视频| 欧美日韩亚洲免费| 欧美日韩亚洲综合| 欧美午夜电影网| 国产精品成人一区二区艾草| 欧美日韩视频在线观看一区二区三区| 欧美激情一区二区三区全黄| 欧美xart系列高清| 欧美国产高清| 欧美日韩精品综合| 欧美性猛片xxxx免费看久爱| 国产精品v欧美精品∨日韩| 欧美日韩在线一区| 国产精品久久久久久久9999 | 亚洲一区二区三区高清| 中文精品视频| 亚洲欧美激情视频在线观看一区二区三区| 一区二区三区欧美亚洲| 一本一道久久综合狠狠老精东影业 | 亚洲六月丁香色婷婷综合久久| 亚洲乱码国产乱码精品精可以看 | 久久欧美肥婆一二区| 久久综合伊人77777| 欧美黄色成人网| 国产精品久久久久久久久果冻传媒 | 国产日韩一区二区三区在线播放| 国产农村妇女精品| 在线成人免费视频| 99re热这里只有精品免费视频| 中文精品在线| 久久精品99国产精品| 免费亚洲一区| 99视频精品免费观看| 欧美一区二区三区久久精品| 老司机午夜精品视频| 欧美日韩一区三区| 国产一区清纯| 洋洋av久久久久久久一区| 午夜精品久久久久| 欧美成人精品一区二区三区| 亚洲精品永久免费精品| 午夜精品在线看| 免费成人高清视频| 国产精品视频xxxx| 亚洲欧洲在线视频| 久久国产精品久久w女人spa| 欧美福利在线| 午夜精品久久久久久久99热浪潮| 欧美wwwwww| 国模精品一区二区三区| 这里只有精品丝袜| 免费看亚洲片| 亚洲在线第一页| 欧美精品观看| 精品av久久久久电影| 亚洲免费影视| 亚洲国产福利在线| 久久国产欧美日韩精品| 国产精品对白刺激久久久| 91久久午夜| 久久亚洲国产成人| 亚洲免费在线精品一区| 欧美另类69精品久久久久9999| 国产一区二区在线免费观看| 亚洲一区三区电影在线观看| 欧美国产精品久久| 久久久www免费人成黑人精品| 国产精品av一区二区| 亚洲精选一区二区| 欧美成人免费小视频| 欧美在线亚洲在线| 国产精品入口日韩视频大尺度| 99热这里只有成人精品国产| 欧美成人一品| 久久精品国产亚洲aⅴ| 国产精品尤物福利片在线观看| 在线亚洲免费| 日韩视频在线一区二区| 欧美激情一区二区三区| 亚洲国产精品一区二区第四页av | 国产偷国产偷亚洲高清97cao| 亚洲午夜成aⅴ人片| 亚洲精品国产精品乱码不99| 裸体一区二区| 亚洲国产天堂网精品网站| 老鸭窝毛片一区二区三区 | 欧美日本中文字幕| 日韩午夜电影av| 亚洲国产成人av在线| 欧美大尺度在线观看| 亚洲人体一区| 亚洲欧洲精品一区二区三区| 欧美第一黄色网| 一区二区三区精品| 亚洲视频碰碰| 国产欧美日韩免费看aⅴ视频| 欧美一区日韩一区| 久久精品二区亚洲w码|