Кто-нибудь знает, могут ли в C++ 11 шаблоны функций быть частично специализированными?Частичная специализация шаблонов функций
ответ
Нет, они не могут. В проекте стандарта C++ 0x есть раздел (14.5.5) по частичным специализациям шаблонов классов, но не упоминается о частичных специализациях шаблонов функций.
No; they were proposed as core language issue #229 (от n1295), но в конечном счете отклонил (и совершенно справедливо, так как перегрузка выполняет задание).
Я не согласен с «совершенно справедливо». Перегрузка не всегда выполняется, поскольку мы не можем иметь перегрузки, которые отличаются только по типу возврата. Было бы хорошо, если бы я мог сделать что-то вроде следующего, например: шаблона <класса T, класса U> T & Foo() {...} шаблона
Я согласен, что перегрузки недостаточно. Скажем, я хочу перегрузить std :: make_shared для устаревшей структуры C с пользовательскими функциями create_ * и destroy_ *. Частичная специализация была бы очень полезна в этом случае. – AndyJost
Больше несогласия с «совершенно справедливо»: 'enable_if'. Если бы мы могли частично специализировать функции, мы могли бы избежать неуклюжих хаков с помощью тегов-помощников. – GreenScape
- 1. Частичная специализация для аргументов шаблонов функций-членов?
- 2. частичная специализация шаблонов в C++
- 3. Частичная специализация конкретных функций-членов
- 4. C++ Частичная специализация (указатели функций)
- 5. Частичная специализация классов шаблонов для видов коллекций
- 6. Частичная специализация: использовать члены первичных шаблонов
- 7. Частичная специализация псевдонимов Шаблоны
- 8. Частичная специализация оператора()
- 9. Частичная специализация шаблона
- 10. Частичная специализация синтаксиса путаница
- 11. C++ шаблон частичная специализация
- 12. Частичная специализация для default_delete
- 13. Template частичная специализация
- 14. частичная функция шаблон специализация
- 15. Частичная специализация и SFINAE
- 16. Специализация шаблонов и перегрузка функций в C++
- 17. C++: специализация шаблонов функций для массива
- 18. Специализация шаблонов функций-членов в C++
- 19. Специализация класса шаблонов против перегрузки функций
- 20. Если частичная специализация вариационных классов шаблонов благоприятствует невариантным специализациям
- 21. Частичная специализация шаблонов может не работать для функций, но не перегружает одну и ту же вещь?
- 22. Частичная специализация в шаблоне C++
- 23. Частичная специализация шаблона и КМК
- 24. Шаблон класс частичная специализация Синтаксис
- 25. Частичная специализация для указателей, C++
- 26. C++ Частичная специализация шаблона путаница
- 27. Частичная специализация функции вариационного шаблона
- 28. C++ - VARIADIC шаблон частичная специализация
- 29. Частичная специализация non type аргумент
- 30. Частичная специализация шаблона для конкретного типа C++
Это было мое понимание, что это в C++ 0x. – Puppy
@DeadMG: Да, я имею в виду проект стандарта C++ 0x, http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3092.pdf –
FYI: последний проект теперь [N3126] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3126.pdf) [Warning: Big PDF]. В последнем проекте ответ не отличается. –