測試了一下VC和gcc對關(guān)鍵字export的支持
<<c++ primer>>里面說,編譯模板函數(shù)的時候C++支持兩種模式,一種是包含模式,就是把模板函數(shù)的聲明和實現(xiàn)都放在同一個文件里面,我注意到STL就是這樣的,而且sgi和vc的實現(xiàn)都是如此,也許是因為早期對模板的支持不太好的緣故吧;另一種是分離編譯模式,可以把模板函數(shù)的聲明和實現(xiàn)分開在頭文件和.cpp文件中,此時需要編譯器支持關(guān)鍵字export.
測試的代碼如下,非常的簡單:
頭文件里面的聲明:
template?<class?T>
void?test(T?n);
.cpp文件里面的實現(xiàn),注意書寫的格式:
export?//?前面加上關(guān)鍵字export
template?<class?T>
void?test(T?n)


{
????std::cout?<<?"n?=?"?<<?n?<<?std::endl;
}

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


.cpp文件里面的實現(xiàn),注意書寫的格式:









我用vc和gcc分別的編譯了一下,VC(我用的是7.1)中根本就不能識別export關(guān)鍵字,但是gcc下面可以編譯過去.但是如果把export關(guān)鍵字去掉那么兩個編譯器都是可以編譯過去的,而且也沒有對函數(shù)的結(jié)果產(chǎn)生影響,這是否說明現(xiàn)在已經(jīng)不再需要這個export關(guān)鍵字了?
posted on 2006-07-11 19:04 那誰 閱讀(3666) 評論(13) 編輯 收藏 引用 所屬分類: C\C++