• <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>

            CG@CPPBLOG

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

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


            3.2 定義Typelists
            1 
            2 template <class T, class U>
            3 struct Typelist
            4 {
            5     typedef T head;
            6     typedef U Tail;
            7 };


            Typelists內(nèi)部沒有任何數(shù)值:它的實體是空的。它們存在的理由只是為了攜帶型別信息。因此,對typelist的任何處理都發(fā)生在編譯期。此后我們提到一個typelist,指的是一個型別而非一個對象。雖然typlist只有兩個參數(shù),但我們可以把任意一個替換為另一個typelist,來達到無限延伸的目的。

            另外我們需要一個零個型別以及一個型別的typelist。對于零個型別,前面提到的NullType就可以,對于一個型別,我們可以這樣定義:

            1 typedef Typelist<int, NullType> OneTypeOnly;


            3.3 將Typelist生成線性化

            像這樣一個typelist
            1
            2 typedef Typlist<int, Typelist<int, Typelist<int, Typelist<intint> > > > Int4Type;


            它太Lisp了,我們定義一系列的宏來完成它,這樣我們可以忘記尖括號間的空格。

            1 #define TYPELIST_1(T1) Typelist<T1, NullType>
            2 #define TYPELIST_2(T1, T2) Typelist<T1, TYPELIST_1(T2) >
            3 #define TYPELIST_3(T1, T2, T3) Typelist<T1, TYPELIST_2(T2, T3) >
            4 #define TYPELIST_4(T1, T2, T3, T4) Typelist<T1, TYPELIST_3(T2, T3, T4) >
            5 //etc
            6 #define TYPELIST_50(/* */) //


            這樣前面的 Int4Type 就可以這樣定義

            1 typedef Int4Type TYPELIST_4(intintintint) Int4Type;


            這只是包裝手法的一個開端。我們訪問Int4Type的最后一個元素還比較麻煩,需要

            1 Int4Type::Tail::Tail::Tail;


            我們還要進一步來考慮它操作的問題。


             

            posted on 2007-12-29 22:08 cuigang 閱讀(300) 評論(0)  編輯 收藏 引用 所屬分類: 《C++設(shè)計新思維》讀書筆記

            国产精品99久久免费观看| 91麻豆精品国产91久久久久久| 热RE99久久精品国产66热| 91亚洲国产成人久久精品| 久久亚洲高清综合| 伊人色综合九久久天天蜜桃| 久久久噜噜噜久久中文字幕色伊伊| 久久精品国产精品亚洲精品 | 久久亚洲精品无码aⅴ大香| 亚洲中文久久精品无码| 国产精品久久永久免费| 色综合久久夜色精品国产| 国产成人久久激情91| 久久久久久久综合狠狠综合| 久久精品免费观看| 亚洲精品国产美女久久久| 久久99热这里只有精品国产| 久久大香香蕉国产| 欧美日韩久久中文字幕| 久久精品国产精品亚洲艾草网美妙| 久久久久久综合网天天| 无码人妻少妇久久中文字幕| 久久精品成人国产午夜| 久久久久久夜精品精品免费啦| 一级做a爰片久久毛片免费陪| 精品久久综合1区2区3区激情| 国产一区二区三区久久| 久久久久亚洲精品天堂| 人妻丰满AV无码久久不卡| 久久久久se色偷偷亚洲精品av| 亚洲AⅤ优女AV综合久久久| 久久国产热这里只有精品| 国产成人精品久久亚洲高清不卡| 99久久人妻无码精品系列蜜桃| 精品久久无码中文字幕| 精品免费久久久久久久| 欧美精品一区二区精品久久| 99久久精品免费看国产一区二区三区| 久久国产热精品波多野结衣AV| 7777久久亚洲中文字幕| 久久综合狠狠综合久久激情 |