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

            那誰的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持

            <<c++ primer>>里面說,編譯模板函數(shù)的時(shí)候C++支持兩種模式,一種是包含模式,就是把模板函數(shù)的聲明和實(shí)現(xiàn)都放在同一個(gè)文件里面,我注意到STL就是這樣的,而且sgi和vc的實(shí)現(xiàn)都是如此,也許是因?yàn)樵缙趯?duì)模板的支持不太好的緣故吧;另一種是分離編譯模式,可以把模板函數(shù)的聲明和實(shí)現(xiàn)分開在頭文件和.cpp文件中,此時(shí)需要編譯器支持關(guān)鍵字export.

            測(cè)試的代碼如下,非常的簡(jiǎn)單:
            頭文件里面的聲明:
            template?<class?T>
            void?test(T?n);

            .cpp文件里面的實(shí)現(xiàn),注意書寫的格式:
            export?//?前面加上關(guān)鍵字export
            template?<class?T>
            void?test(T?n)
            {
            ????std::cout?
            <<?"n?=?"?<<?n?<<?std::endl;
            }


            我用vc和gcc分別的編譯了一下,VC(我用的是7.1)中根本就不能識(shí)別export關(guān)鍵字,但是gcc下面可以編譯過去.但是如果把export關(guān)鍵字去掉那么兩個(gè)編譯器都是可以編譯過去的,而且也沒有對(duì)函數(shù)的結(jié)果產(chǎn)生影響,這是否說明現(xiàn)在已經(jīng)不再需要這個(gè)export關(guān)鍵字了?

            posted on 2006-07-11 19:04 那誰 閱讀(3666) 評(píng)論(13)  編輯 收藏 引用 所屬分類: C\C++

            評(píng)論

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            嗯.也許可以說是分離編譯的功能已經(jīng)被支持,但是那個(gè)語法標(biāo)準(zhǔn)沒有被MS采納而已.
            2006-07-11 19:21 | LOGOS

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            看看<Exceptional C++ Style>你就會(huì)知道目前的編譯器基本上都不支持export關(guān)鍵字。
            2006-07-11 19:26 | fanofvc

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            GCC版本是號(hào)多少?
            2006-07-12 11:33 | 周星星

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            to 星星,我在win下用的mingw,版本號(hào)是3.4.2
            2006-07-12 11:50 | 創(chuàng)系

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            @創(chuàng)系
            哦,謝謝,但我這里不行
            2006-07-12 17:37 | 周星星

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            僅僅是可以編譯過而已,應(yīng)該不能用,如果要使用仍需要include .c,失去了隱藏實(shí)現(xiàn)的意義。

            2006-08-06 19:24 | tango

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            順便問一下樓主用什么工具貼的代碼?帶語法加亮和解析。
            有現(xiàn)成的工具或教本嘛?
            謝了
            2006-08-06 21:12 | tango

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            @tango
            這個(gè)blog自帶的code功能,也是把我吸引到這里的原因之一:)
            2006-08-06 21:59 | 創(chuàng)系

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            你僅僅聲明和實(shí)現(xiàn)了模板,沒有"具現(xiàn)點(diǎn)",也就是說,沒有使用這個(gè)模板,那么就不會(huì)有連接問題出現(xiàn),如果你使用這個(gè)模板,那么ms的連接器將無法找到這個(gè)模板的實(shí)現(xiàn),也就無法具現(xiàn)(instantiate)這個(gè)模板,而支持export的編譯器將告訴連接器:"這個(gè)編譯單元里有你要的實(shí)現(xiàn),具現(xiàn)時(shí)來找吧",于是問題解決了.
            2007-03-20 16:44 | 空見

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            老大,template只在調(diào)用時(shí)才會(huì)生成。
            分離模板是指你在另一個(gè)文件 xxx.cpp 中只include 你上邊的.h時(shí),也能正常連接通過...

            你這個(gè)代碼都沒有生成,怎么能證明不用export ....
            2007-03-22 19:24 | 糖菓

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            謝謝樓上幾位朋友的指正~~
            2007-03-22 23:17 | 創(chuàng)系

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            有本書這樣寫:
            //*.h

            #if defined USE_EXPORT
            #define EXPORT export
            #else
            #define EXPORT
            #endif

            EXPORT
            /*********some code***********/

            #ifnde UES_EXPORT
            #include"*.cpp"
            #endif
            2009-03-23 22:25 | AAA

            # re: 測(cè)試了一下VC和gcc對(duì)關(guān)鍵字export的支持  回復(fù)  更多評(píng)論   

            你的main函數(shù)在哪里?一般是連接時(shí)出錯(cuò),undefined reference to xxx
            2009-11-10 19:08 | lc
            亚洲а∨天堂久久精品| 欧美一区二区久久精品| 91久久精品国产免费直播| 香港aa三级久久三级| 日本加勒比久久精品| 精品熟女少妇av免费久久| 久久综合九色综合97_久久久| 久久久久免费视频| 99精品国产在热久久无毒不卡| 国产精品女同一区二区久久| 中文字幕乱码人妻无码久久| AAA级久久久精品无码区| 丁香色欲久久久久久综合网| 久久99精品国产麻豆蜜芽| 丁香色欲久久久久久综合网| 久久99精品久久久久久水蜜桃| 亚洲AV无码久久寂寞少妇| 人妻中文久久久久| 国产成人精品综合久久久| 精品久久亚洲中文无码| 久久婷婷人人澡人人| 91久久精品视频| 久久99国产精一区二区三区| 综合网日日天干夜夜久久| 久久这里只有精品视频99| 国产精品久久久久久久久久免费| 久久人人妻人人爽人人爽| 三级三级久久三级久久| 久久亚洲国产精品五月天婷| 国产成人久久精品二区三区| 久久国产亚洲精品麻豆| 国产午夜久久影院| 久久久久久久尹人综合网亚洲| 久久99国产综合精品免费| 日产精品99久久久久久| 无码人妻精品一区二区三区久久久| 亚洲中文字幕伊人久久无码| 一本一道久久a久久精品综合 | 久久久久久久精品成人热色戒| 久久久久无码精品国产app| 国产精品久久久久乳精品爆|