close
總而言之
用template來寫函式的時候
宣告跟定義不能分開來寫
要全部都放在header裡面
來自這裡:
一般情況下template
類是不能編譯到靜態LIB中的,不信,你可以看MFC的代碼,計劃所有的模板類都是只有一個.h文件,它是動態聯編而不是靜態編譯,當然除了STL
和boost
這個兩個特殊的模板,VC的編譯器對他們有特殊的優化,他們可以以DLL方式提供,除此外,模板繼承都是以.h文件提供,不能編譯成DLL,你所謂的編譯
成功,只是假相,那些代碼都是死代碼,並沒有真正使用。
如果你的template 寫成 .h 和 .cpp ,那麼你的代碼是不可能編譯的,但看afxtempl.h ,所有的實現代碼都在裡邊,只有這樣才能和繼承類編譯鏈接。
全站熱搜
留言列表