有誰知道在C++ 11中,功能模板是否可以部分專用?功能模板的部分專業化
回答
不,他們不能。 C++ 0x標準草案在類模板部分專業化中有一節(14.5.5),但沒有提及功能模板部分專業化。
No; they were proposed as core language issue #229(來自n1295)但最終被拒絕(並且非常正確,因爲超載完成了這項工作)。
我不得不不同意「非常正確」。重載並不總能完成這項工作,因爲我們不能只有返回類型不同的重載。這將是很好,如果我可以做類似如下,例如: 模板<類T,U類> T&富(){...} 模板
我同意超載是不夠的。假設我想用自定義的create_ *和destroy_ *函數爲舊的C結構重載std :: make_shared。在這種情況下,部分專業化將非常有用。 – AndyJost 2015-10-05 21:22:48
對「非常正確」:「enable_if」有更多不同意見。如果我們可以部分專門化功能,我們可以避免使用標籤助手的笨拙攻擊。 – GreenScape 2016-06-01 10:40:34
- 1. C++模板部分類專業化與功能專業
- 2. 查詢C++模板專業化和部分模板專業化
- 3. 部分模板專業化模板
- 4. C++模板:部分模板模板類中的功能專業化
- 5. 模板專業化功能的C++
- 6. 完全專業化的模板功能
- 7. 類功能部分專業化與模板參數
- 8. 解決功能模板部分專業化
- 9. 功能模板部分專業化'swap <T>'不允許
- 10. 函數模板的部分專業化
- 11. C++模板功能專業化錯誤
- 12. 功能模板專業化失敗
- 13. 模板功能專業化,C++
- 14. 功能模板專業化錯誤
- 15. 靜態模板功能專業化值
- 16. 模板功能專業化默認
- 17. 澄清模板功能專業化
- 18. 模板專業化或功能超載
- 19. 模板功能專業化與超載
- 20. 模板功能專業化問題
- 21. 模板類,功能專業
- 22. 部分模板專業化問題
- 23. 模板部分專業化bool
- 24. C++:部分模板專業化
- 25. 部分類模板專業化
- 26. 具有模板化功能的專業化模板類
- 27. 模板部分專業
- 28. 局部模板模板專業化
- 29. 模板模板部分專業化失敗:「期望類模板」
- 30. 具有靜態功能模板的模板專業化
這是我的理解,這是在C++ 0x。 – Puppy 2010-09-15 10:57:26
@DeadMG:是的,我指的是C++ 0x標準草案,http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3092.pdf – 2010-09-15 11:08:24
僅供參考:最新草案現在是[N3126](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf)[警告:大PDF]。答案在最新的草案中沒有什麼不同。 – 2010-09-15 11:20:20