Частичная специализация шаблона функции

Кто-нибудь может объяснить, почему частичная специализация не действительна для шаблона функции, но это хорошо для шаблона класса.

Я понимаю, что частичная специализация может привести к тому, что компилятор запутается с перегрузкой функций, но мне все еще нужно больше информации, чтобы полностью понять меня. Кто-нибудь может предложить мне несколько хороших примеров?

2 ответа

Решение

В этом случае достаточно запутаться.

И существует альтернативное решение: перегрузка. Комитет потратил много усилий (мне кажется, меня там не было), чтобы получить разрешение перегрузки функций, работающее для шаблонов, и, безусловно, одна из причин этого заключалась в том, что не нужно было решать менее общую, сложную проблему шаблонов функций. частичная специализация.

Я не эксперт, но думаю, что ответ на первую часть состоит в том, что частичная специализация функций будет конфликтовать (и быть частично избыточной) с перегрузкой функций. Что касается второй части, вы можете использовать шаблонную структуру, которая служит контейнером для того, что вы хотите частично специализировать.

Другие вопросы по тегам