有誰知道在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. 澄清模板功能專業化
- 5. 模板功能專業化默認
- 6. 模板功能專業化,C++
- 7. 模板功能專業化問題
- 8. 模板專業化或功能超載
- 9. 功能模板專業化失敗
- 10. 模板類,功能專業
- 11. 模板部分專業化bool
- 12. 部分類模板專業化
- 13. 部分模板專業化問題
- 14. C++:部分模板專業化
- 15. 具有模板化功能的專業化模板類
- 16. 模板部分專業
- 17. 模板模板部分專業化失敗:「期望類模板」
- 18. 特定模板類型的功能模板專業化
- 19. 具有模板功能,專業化的類模板
- 20. 模板專業化模板
- 21. 模板專業化
- 22. 模板專業化
- 23. 模板專業化
- 24. 模板專業化
- 25. 模板專業化
- 26. 功能模板專業化(以int值爲模板)
- 27. 爲什麼模板好友功能的這種部分專業化工作?
- 28. 誰可能從類模板繼承部分專業化
- 29. 使用enable_if進行部分模板功能專業化:使用默認實現
- 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