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

Windreamer Is Not a DREAMER
main(){main(puts("Hello,stranger!"));}

終于無(wú)聊到來(lái)寫書評(píng),最近的項(xiàng)目一直都沒和C++有什么關(guān)系,不過(guò)看的書卻都是C++方面的,而最近看到的幾本書中感覺最好的莫過(guò)于這本《C++ Templates》

Nicolai M. Josuttis的書我很喜歡,從他的那本《The C++ Standard Template Library》就看出了他很多獨(dú)特的風(fēng)格,令我愛不釋手,所以這本《C++ Template》   也進(jìn)入了我的必看書單。粗讀之后,感覺整本書絕對(duì)將成為C++泛型領(lǐng)域的圣經(jīng)級(jí)著作

  1. 這本書角度選得很好,全書分三個(gè)部分,分別介紹模板基礎(chǔ)、模版的編譯器實(shí)現(xiàn)、模板的高級(jí)技巧,三個(gè)部分相輔相成、相互照應(yīng),由淺入深而又自然而然,還方便分開閱讀(比如我就重點(diǎn)看了第一第三部分,模版實(shí)現(xiàn)被我略過(guò)了)卻又全面覆蓋了這一領(lǐng)域
  2. 這本書英文很淺顯(比《Modern C++ Design》淺顯了不知多少倍),語(yǔ)言嚴(yán)謹(jǐn)而又不晦澀,尤其要贊的就是廢話尤其地少!
  3. 章節(jié)安排很合理,很方別作為工具書應(yīng)急查閱(《C++STL》就有這個(gè)優(yōu)點(diǎn),與這本書科學(xué)家+工程師的組合不無(wú)關(guān)系)
  4. 書中好多技術(shù),我是聞所未聞,驚為天人,尤其第三部分,可以算得上眼花繚亂,而且給出的實(shí)現(xiàn)感覺既符合標(biāo)準(zhǔn)、實(shí)用、而且沒有炫技的成分

同類書籍據(jù)我所知沒有可以達(dá)到這個(gè)高度的,大部分C++泛型方面的專著只局限于怎么用STL,將模板基礎(chǔ)的書,也僅限于最表面的語(yǔ)法,像模版參數(shù)推導(dǎo)這種問(wèn)題鮮有涉及,更不用提關(guān)于Metaprogramming,這本書圣經(jīng)的地位估計(jì)后人也是難以企及了。

下面是我看書時(shí)畫下來(lái)的一些覺得自己平時(shí)應(yīng)該注意的地方,放在這里做備忘好了

  1. (P12) [Argument Deducion] If we pass two ints to the parameter type T const&  the C++ compiler must conclude that T must be int. Note that no automatic type conversion is allowed here,Each T must match exactly.

    template <typename T>
    inline T 
    const& max (T const& a,T const& b);

    max(
    4,7)//OK:T is int for both arguments
    max(4,4.2)//ERROR:first T is int,second T is double

  2. (P13)[Template Parameters] In function templates(unlike class template) no default template arguments can be specified
  3. (P14)[Template Parameters]Deducation can be seen as part of  overlaod resolution-a process tha is not based on selection of return type either.The sole exception is the return type of conversion operator members.
  4. (P18)[Overloading Function Template] The fact that not all overloaded functions are visible when a corresponding function call is made may or may not matter.
  5. (P39)[Nontype Function Template Parameters] Function templates are considered to name a set of overloaded function.However,according to the current standard,sets of overload functions cannot be used for template parameter deducation.Thus you have to cast to the exactly type of the function template arguments

    template <typename T,int VAL>
    T addValue (T 
    const& x)
    {
        
    return x+VAL
    }


    std::transform(source.begin(),source.end(),
    //start and end of source
    dest.begin(),//start of destination
    (int(*)(int  const&))addValue<int,5>);//operation

  6. (P40)[Restrictions for Nontype Template Parameters] 太長(zhǎng)了,略過(guò)
  7. (P44)[The .template Construct]

    template <int N>
    void printBitset (std::bitset<N> const& bs)
    {
        std::cout
    <<bs.to_string<char,char_traits<char>,allacator<char> >();//ERROR:can't recogonize the template
    }


    template 
    <int N>
    void printBitset (std::bitset<N> const& bs)
    {
        std::cout
    <<bs.template to_string<char,char_traits<char>,allacator<char> >();//OK
    }

  8. (P45)[Using this->]

    template <typename T>
    class Base
    {
    public:
        
    void bar();
    }
    ;

    template 
    <typename T>
    class Derived : Base<T>
    {
    public:
        
    void foo()
        
    {
            bar();
    //call external bar() or error
        }

    }


    template 
    <typename T>
    class Derived : Base<T>
    {
    public:
        
    void foo()
        
    {
            
    this->bar();//OK
        }

    }

  9. 同樣精彩的還有(P57)[Using String Literals as Arguments for Function Templates]
  10. 令我驚異的SFINE技術(shù)(substitution-failure-is-not-an-error)

    template <typename T>
    class IsClassT
    {
    private:
        typedef 
    char One;
        typedef 
    struct {char a[2];} Two;
        template 
    <typename C> static One test (int::C*);
        template 
    <typename C> static Two test();
    public:
        
    enum {Yes=sizeof(IsClassT<T>::test<T>(0))==1};
        
    enum {No=!Yes};
    }
    ;

總而言之,此書帶給了我前所未有的閱讀享受......我今年震撼大獎(jiǎng)一定會(huì)投它一票
posted on 2005-12-10 12:36 Windreamer Is Not DREAMER 閱讀(636) 評(píng)論(3)  編輯 收藏 引用 所屬分類: Generic
Comments

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久五月婷婷丁香社区| 久久精品国产成人| 欧美一区二区日韩| 午夜欧美理论片| 欧美视频在线免费| 欧美xart系列高清| 久久黄金**| 在线免费高清一区二区三区| 国外精品视频| 国内精品福利| 国产一区二区| 亚洲人成毛片在线播放女女| 亚洲欧洲免费视频| 亚洲激情国产| 亚洲美女黄色| 久久激情视频免费观看| 欧美在线一二三| 裸体素人女欧美日韩| 裸体女人亚洲精品一区| 亚洲高清中文字幕| 亚洲精品国精品久久99热一| 99国内精品| 亚洲综合三区| 午夜久久资源| 久久综合电影| 欧美三级视频在线播放| 欧美国产一区二区| 国产精品国产| 今天的高清视频免费播放成人 | 亚洲日本成人网| 亚洲欧洲一二三| 亚洲精品中文字| 一本色道久久综合精品竹菊| 欧美成人免费全部| 亚洲美女视频网| 亚洲综合99| 亚洲一区www| 久久久久国色av免费观看性色| 狼人社综合社区| 久久综合影视| 欧美网站在线观看| 影音先锋一区| 亚洲免费网址| 亚洲黄色大片| 蜜桃久久av一区| 激情综合久久| 蜜月aⅴ免费一区二区三区| 中文一区二区在线观看| 欧美日韩高清在线一区| 亚洲精品久久久久久久久| 免费成人黄色| 久久亚洲影院| 亚洲国产成人av| 欧美成人免费网| 蜜桃av综合| 亚洲精品一区在线| 欧美暴力喷水在线| 狠狠v欧美v日韩v亚洲ⅴ| 欧美在线一二三四区| 亚洲精品视频在线播放| 老巨人导航500精品| 精品成人一区二区| 久久亚洲私人国产精品va| 亚洲综合色噜噜狠狠| 国产精品成人在线观看| 在线亚洲伦理| 一区二区电影免费观看| 国产精品视频观看| 香蕉成人啪国产精品视频综合网| 一区二区三区日韩欧美精品| 欧美日本高清视频| 中文网丁香综合网| 一区二区三区四区精品| 国产精品h在线观看| 亚洲欧美视频在线| 香蕉成人啪国产精品视频综合网| 国产欧美日本| 久久这里只有| 欧美大色视频| 亚洲一区二区三区四区中文| 一本一本久久a久久精品综合麻豆| 欧美精品九九99久久| 亚洲一区3d动漫同人无遮挡| 亚洲一区二区三区在线看| 韩国av一区二区| 亚洲激情二区| 欧美天堂亚洲电影院在线播放| 欧美专区18| 老司机一区二区三区| 一区二区三区产品免费精品久久75 | 猛干欧美女孩| 亚洲在线视频网站| 久久久久久网| 亚洲综合视频在线| 蜜桃久久av一区| 欧美一区1区三区3区公司| 久久资源在线| 亚洲女人天堂av| 蜜桃av综合| 久久久久久久国产| 欧美先锋影音| 亚洲福利视频一区二区| 国产欧美一区二区精品婷婷| 亚洲黄色在线视频| 国产亚洲高清视频| 日韩亚洲欧美一区| 亚洲国产视频a| 亚洲精选久久| 欧美精品1区| 欧美一区二区高清| 欧美精品日韩一本| 久久不射中文字幕| 欧美视频在线观看一区| 欧美国产第二页| 国产日韩亚洲欧美综合| 一区二区三区视频在线看| 亚洲激情成人网| 久久久免费av| 久久久精品日韩| 欧美视频在线观看一区| 亚洲欧洲精品一区二区三区| 一区二区三区中文在线观看 | 久久综合色天天久久综合图片| 日韩午夜激情| 麻豆久久精品| 欧美阿v一级看视频| 国产午夜精品视频| 亚洲手机在线| 亚洲午夜av在线| 欧美日韩国产亚洲一区| 亚洲欧洲视频| 99这里只有久久精品视频| 欧美va天堂va视频va在线| 欧美成人第一页| 尤物九九久久国产精品的特点 | 欧美福利一区| 亚洲国产精品va在线看黑人动漫 | 亚洲第一福利社区| 亚洲高清在线| 欧美不卡高清| 亚洲美女黄网| 亚洲一区二区三区在线视频| 欧美日韩一级黄| 亚洲视频一区二区| 午夜精品美女久久久久av福利| 国产精品xxxxx| 亚洲综合精品| 久久久久久久久岛国免费| 国产综合久久久久影院| 久久成人一区| 欧美成人精品激情在线观看| 亚洲日本va在线观看| 欧美激情视频在线播放| 日韩视频永久免费观看| 性久久久久久| 在线观看91精品国产入口| 欧美大香线蕉线伊人久久国产精品| 亚洲国内精品在线| 亚洲在线网站| 韩国成人理伦片免费播放| 欧美.www| 一区二区三区国产精华| 久久色在线观看| 日韩亚洲在线观看| 国产婷婷色综合av蜜臀av| 亚洲福利国产| 亚洲伊人第一页| 欧美不卡在线| 国产精品99久久久久久久女警| 国产精品一区二区三区四区五区 | 久久精品视频导航| 欧美激情亚洲精品| 亚洲欧美日韩一区二区在线| 黑人操亚洲美女惩罚| 欧美日韩一本到| 久久久久国产一区二区三区| 99ri日韩精品视频| 久久美女性网| 亚洲人成人99网站| 国产色综合天天综合网| 欧美激情按摩| 久久久不卡网国产精品一区| 日韩视频在线一区二区| 久久综合网色—综合色88| 亚洲午夜三级在线| 亚洲欧洲精品天堂一级| 国产欧美日韩精品丝袜高跟鞋 | 欧美性大战久久久久久久| 性欧美大战久久久久久久免费观看| 欧美激情在线观看| 久久精品日产第一区二区| 亚洲深夜影院| 日韩午夜剧场| 最新亚洲电影| 在线观看国产成人av片| 国产日韩精品久久久| 欧美四级在线观看| 欧美男人的天堂| 欧美国产乱视频| 另类国产ts人妖高潮视频|