<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    type_to_pointer

      1 #include <iostream>
      2 #include <typeinfo>
      3 #include <string>
      4 #include <fstream>
      5 #include <sstream>
      6 #include <stdint.h>
      7 #include <pthread.h>
      8 #include <unistd.h>
      9 #include <string.h>
     10 #include <vector>
     11 #include <map>
     12 #include <set>
     13 
     14 using namespace std;
     15 
     16 template<typename T>
     17 struct type_to_pointer { typedef T* type; };
     18 template <typename T>
     19 struct type_to_pointer<T*> { typedef T* type; };
     20 template <typename T>
     21 struct type_to_pointer<const T*> { typedef T* type; };
     22 template <typename T>
     23 struct type_to_pointer<T*const> { typedef T* type; };
     24 template <typename T>
     25 struct type_to_pointer<const T *const> { typedef T* type; };
     26 template <typename T>
     27 struct type_to_pointer<T**> { typedef T* type; };
     28 template <typename T>
     29 struct type_to_pointer<const T**> { typedef T* type; };
     30 template <typename T>
     31 struct type_to_pointer<T**const> { typedef T* type; };
     32 template <typename T>
     33 struct type_to_pointer<T&> { typedef T* type; };
     34 template <typename T>
     35 struct type_to_pointer<T&&> { typedef T* type; };
     36 template <typename T>
     37 struct type_to_pointer<const T&> { typedef T* type; };
     38 template <typename T, int N>
     39 struct type_to_pointer<T[N]> { typedef T* type; };
     40 template <typename T, int N>
     41 struct type_to_pointer<const T[N]> { typedef T* type; };
     42 template <typename T, int N>
     43 struct type_to_pointer<T*[N]> { typedef T* type; };
     44 template <typename T, int N>
     45 struct type_to_pointer<const T*[N]> { typedef T* type; };
     46 template <typename T, int N>
     47 struct type_to_pointer<const T *const[N]> { typedef T* type; };
     48 
     49 template <typename FromType, typename ToType = void>
     50 void type_printer() {
     51     cout << __PRETTY_FUNCTION__ << endl;
     52 }
     53 
     54 #define TYPE_PRINT(var) type_printer<decltype(var), type_to_pointer<decltype(var)>::type>()
     55 #define CONST_CAST_TO_POINTER(var) const_cast<typename type_to_pointer<decltype(var)>::type>(var)
     56 
     57 int main(int argc, char* argv[]) {
     58     int x1 = 0;
     59     TYPE_PRINT(x1);
     60 
     61     const int& x2 = x1;
     62     TYPE_PRINT(x2);
     63 
     64     const int* x3 = &x1;
     65     TYPE_PRINT(x3);
     66     TYPE_PRINT(CONST_CAST_TO_POINTER(x3));
     67 
     68     const int *const x4 = &x1;
     69     TYPE_PRINT(x4);
     70     TYPE_PRINT(CONST_CAST_TO_POINTER(x4));
     71 
     72     int& x5 = x1;
     73     TYPE_PRINT(x5);
     74 
     75     int *const x6 = &x1;
     76     TYPE_PRINT(x6);
     77     TYPE_PRINT(CONST_CAST_TO_POINTER(x6));
     78 
     79     int* x7 = &x1;
     80     TYPE_PRINT(x7);
     81 
     82     int&& x8 = 0;
     83     TYPE_PRINT(x8);
     84 
     85     int x9[2] = {1, 2};
     86     TYPE_PRINT(x9);
     87 
     88     const int x10[2] = {1, 2};
     89     TYPE_PRINT(x10);
     90 
     91     int* x11[2] = {NULL, NULL};
     92     TYPE_PRINT(x11);
     93 
     94     const int* x12[2] = {NULL, NULL};
     95     TYPE_PRINT(x12);
     96 
     97     const int *const x13[2] = {NULL, NULL};
     98     TYPE_PRINT(x13);
     99 
    100     TYPE_PRINT(argc);
    101     TYPE_PRINT(argv);
    102     return 0;
    103 }

    posted on 2018-11-08 19:03 so true 閱讀(202) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 久久久久国色AV免费看图片| 四虎最新永久免费视频| 日韩在线a视频免费播放| 亚洲国产精品美女| 亚洲一区二区免费视频| 久久精品国产亚洲AV无码麻豆| 日韩免费无码一区二区三区| 亚洲国产人成在线观看69网站 | 亚洲乱码在线卡一卡二卡新区| 狼群影院在线观看免费观看直播 | 最近中文字幕免费mv视频7| 亚洲一级片在线观看| 人成午夜免费视频在线观看| 亚洲伊人久久大香线焦| 欧美日韩国产免费一区二区三区| ASS亚洲熟妇毛茸茸PICS| 免费无码精品黄AV电影| 色偷偷噜噜噜亚洲男人| 免费a级黄色毛片| 三年在线观看免费观看完整版中文 | 亚洲国产成人久久三区| 最近中文字幕无免费视频| 老司机午夜性生免费福利 | 亚洲日韩一区二区一无码| 国产成人免费网站在线观看| 又粗又长又爽又长黄免费视频| 亚洲日韩欧洲乱码AV夜夜摸 | 久久aⅴ免费观看| 亚洲一区二区三区91| 国产在线观看免费不卡| 成人免费乱码大片A毛片| 精品日韩亚洲AV无码| 毛片a级毛片免费观看免下载 | 亚洲精华液一二三产区| 亚洲综合精品网站在线观看| 午夜免费福利小电影| 亚洲中文字幕无码亚洲成A人片| 亚洲AV无码专区日韩| 精品无码无人网站免费视频 | 国产国拍亚洲精品mv在线观看 | 亚洲另类激情综合偷自拍图|