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

            專職C++

            不能停止的腳步

              C++博客 :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團(tuán)隊(duì)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            我在看boost的ASIO源代碼的時(shí)候,發(fā)現(xiàn)一個(gè)沒(méi)有見過(guò)的模板調(diào)用用法.google沒(méi)有說(shuō)明,baidu也沒(méi)有說(shuō)明,只好自己試一下。下面是ASIO調(diào)用的代碼:在文件service_registry.hpp中。
             1   // Check whether a service object of the specified type already exists.
             2   template <typename Service>
             3   bool has_service() const
             4   {
             5     boost::asio::detail::mutex::scoped_lock lock(mutex_);
             6 
             7     boost::asio::io_service::service* service = first_service_;
             8     while (service)
             9     {
            10       if (service_id_matches(*service, Service::id))
            11         return true;
            12       service = service->next_;
            13     }
            14 
            15     return false;
            16   }
            調(diào)用的地方,紅色標(biāo)出的地方 
            template <typename Service>
            bool has_service(io_service& ios)
            {
              
            // Check that Service meets the necessary type requirements.
              (void)static_cast<io_service::service*>(static_cast<Service*>(0));
              (
            void)static_cast<const io_service::id*>(&Service::id);

              
            return ios.service_registry_->template has_service<Service>();
            }

            下面是測(cè)試?yán)樱赩S2005中編譯通過(guò)。原來(lái),函數(shù)使用的時(shí)候,可以完全指定模板函數(shù)定義。
             1 class VV
             
            2 {
             
            3 public:
             
            4     static int getI()
             
            5     {
             
            6         return 100;
             
            7     }
             
            8 };
             
            9 class V
            10 {
            11 public:
            12     template<class K>
            13     void PrintK()
            14     {
            15         cout<<K::getI()<<endl;
            16     }
            17 };
            18 void m()
            19 {
            20     V v;
            21     v.template PrintK<VV>();
            22 }
            posted on 2010-10-20 21:32 冬瓜 閱讀(4315) 評(píng)論(30)  編輯 收藏 引用 所屬分類: 原創(chuàng)

            Feedback

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2010-10-21 14:34 空明流轉(zhuǎn)
            不加template在gcc上貌似會(huì)掛掉。  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2010-10-21 14:47 coolypf
            這種語(yǔ)法上的問(wèn)題就不要Google、百度了,
            直接看C++標(biāo)準(zhǔn)。

            ANSI C++ '03
            14.2 Names of template specializations
            4 When the name of a member template specialization appears after . or -> in a postfix-expression, or after
            nested-name-specifier in a qualified-id, and the postfix-expression or qualified-id explicitly depends on a
            template-parameter (14.6.2), the member template name must be prefixed by the keyword template.
            Otherwise the name is assumed to name a non-template. [Example:
            class X {
            public:
            template<size_t> X* alloc();
            template<size_t> static X* adjust();
            };
            template<class T> void f(T* p)
            {
            T* p1 = p->alloc<200>();
            // ill-formed: < means less than
            T* p2 = p->template alloc<200>();
            // OK: < starts template argument list
            T::adjust<100>();
            // ill-formed: < means less than
            T::template adjust<100>();
            // OK: < starts template argument list
            }
            —end example]  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2010-10-22 11:22 戰(zhàn)魂小筑
            也可以這樣寫v.PrintK<VV>();
            就是一種把模板當(dāng)宏寫的方法  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2010-10-22 15:46 13
            67  回復(fù)  更多評(píng)論
              

            # ><script>< 2010-10-23 21:51 ><script><
            ><script><  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2011-09-13 22:20 test
            testing  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2011-10-13 14:36 1111111111
            11111111111111111 果然不用登陸!  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2011-11-13 02:44 ss
            想學(xué)習(xí)  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2011-11-24 10:17 ->->
            好文章  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-02-23 10:24 2222222
            22222222222222  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-05-18 21:31 11
            牛,拜莫  回復(fù)  更多評(píng)論
              

            # re:asio是什么呀? 2012-05-18 21:32 11
            學(xué)習(xí)一下  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-05-21 13:18 test
            test 學(xué)習(xí)下啊  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-07-08 22:22 雙方孤獨(dú)感
            許多風(fēng)格的風(fēng)格的風(fēng)格  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-07-12 11:59 ???
            好文  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-09-06 13:02 ssss
            果然是這樣的?  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2012-09-06 13:03 ssss
            果然是沒(méi)有驗(yàn)證就可以發(fā)表評(píng)論了  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用[未登錄](méi) 2013-04-17 13:33 aa
            果然是沒(méi)有驗(yàn)證就可以發(fā)表評(píng)論了  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-06-09 11:49 wooyun
            haoba  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-06-09 15:07 wooyun
            <script>alert("test")</script>  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-07-01 15:18 誰(shuí)
            低級(jí)  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-07-01 15:19 誰(shuí)
            aaaaaa  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-07-01 15:19 誰(shuí)
            kkkkkkkkkkkkkk  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-07-11 07:52 z7y
            Hacked by z7y!!!  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-08-14 08:30 xyxyxy
            這個(gè)BUG一直沒(méi)修復(fù)啊!  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-08-31 20:12 這是陰謀嗎
            真的可以耶~  回復(fù)  更多評(píng)論
              

            # # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2013-09-13 20:42 我沒(méi)登陸這個(gè)BUG一直沒(méi)修復(fù)啊!
            我沒(méi)登陸啊 這個(gè)BUG一直沒(méi)修復(fù)啊!  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用[未登錄](méi) 2016-04-07 10:26 1
            111111  回復(fù)  更多評(píng)論
              

            # re: 分析ASIO原代碼,發(fā)現(xiàn)一則沒(méi)見過(guò)的模板函數(shù)調(diào)用 2016-04-07 10:30 大坑
            大坑大坑  回復(fù)  更多評(píng)論
              

            日本久久久久亚洲中字幕| 69久久精品无码一区二区| 久久精品这里热有精品| 国产精品对白刺激久久久| 亚洲精品国产成人99久久| 亚洲国产精品人久久| 国产亚洲精久久久久久无码AV| 91久久精品国产91性色也| 国产日韩久久免费影院| 亚洲欧美一区二区三区久久| 久久久久亚洲精品日久生情 | 国内精品伊人久久久影院| 成人午夜精品无码区久久| 99久久成人国产精品免费| 欧美一级久久久久久久大片| 久久久久亚洲Av无码专| 欧美日韩精品久久久久| 无码精品久久久久久人妻中字| 99久久伊人精品综合观看| 国产成人综合久久精品红| 91麻精品国产91久久久久| 久久久久久久免费视频| 2021国产成人精品久久| 亚洲午夜久久久影院| 欧美亚洲另类久久综合婷婷 | 精品人妻伦一二三区久久| 中文字幕久久精品无码| 蜜臀久久99精品久久久久久| 久久久久亚洲AV成人片| 亚洲精品无码久久毛片| 91精品国产91久久久久久蜜臀| 久久综合香蕉国产蜜臀AV| 久久婷婷色香五月综合激情| 国产精品欧美久久久天天影视| 国产精品禁18久久久夂久| 久久综合亚洲色HEZYO国产 | 国产精品九九久久免费视频| 色综合久久中文字幕无码| 亚洲а∨天堂久久精品| 久久精品成人免费国产片小草| 久久精品国产免费|