2010-02-07 148 views
10

任何人都可以解釋爲什麼部分專業化對函數模板無效,但對類模板來說很好。函數模板的部分專業化

我明白部分專業化可能會讓編譯器與函數重載混淆,但我仍然需要更多的信息才能讓我完全理解。任何人都可以提供一些簡潔的例子嗎?

+0

這已經被很好地覆蓋了:http://stackoverflow.com/search?q=function+partial+specialization和http://www.google.com/search?q=function+template+partial+specialization提供豐富的資源。 – Potatoswatter 2010-02-07 01:30:50

回答

10

在這種情況下,弄個糊塗就夠了。

還有一個現有的替代解決方案:超載。委員會花費了大量的精力(在我看來,我不在這裏)獲得了用於模板的函數重載解析,並且肯定的部分原因包括不必解決函數模板中不太常見的難題部分專業化。

1

現在,我不是一個專家,但我認爲第一部分的答案是部分函數特化將與函數重載衝突(並且部分冗餘)。至於第二部分,您可以使用模板結構作爲您想部分專門化的東西的容器。