2009-11-14 50 views

回答

16

因爲很少有編譯器實現連接的模板。這個很難(硬。

這裏有一個簡短但(我認爲),它內容豐富的文章:http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=53

我說「我想」,因爲這真的不是我很熟悉的莫過於它的廣泛未實現等。我最初說這個標準不需要它,但是在C++ 03中查看「export」的定義時,我沒有看到任何跡象表明它是可選的。也許這只是一個失敗的標準。

+0

謝謝,只是有一天,我其實是想知道C++如何鏈接到模板! – 2009-11-14 03:23:50

+2

導出是C++ 98標準的一部分,但正如你所說的,大多數編譯器不支持它(最後我檢查過,g ++團隊沒有興趣實現它)。 – 2009-11-14 03:44:58

+0

非常感謝您 – Judeo 2009-11-14 03:47:44

1

將模板視爲代碼生成。如果您事先不知道將使用哪種模板,則無法編譯。所以你需要在頭文件中保持實現。

這使得一些內聯和解釋了爲什麼有時使用模板化的東西(比如std ::排序)的作品比平原快C.

+0

你忘記了(相當不幸)導出關鍵字。 – ChrisInEdmonton 2009-11-14 16:16:34

+0

我認爲arlready之前的人給出了足夠的解釋和關於它的鏈接,它的不執行以及它的可能的未來;) – 2009-11-14 23:09:17

相關問題