Почему стандарт С++ не допускает частичной специализации шаблона функции?

Я прочитал кое-что, что может сбить с толку компилятора при написании

template <class T>
void calculator<std::complex<T>>::myMin();

а может просто так намекнуть? Чтобы было понятно, что это частичная специализация.

template < , class T>
void calculator<std::complex<T>>::myMin();

person Hakaishin    schedule 17.11.2016    source источник
comment
open-std.org/jtc1/sc22/wg21/ документы/cwg_closed.html#229   -  person Danh    schedule 17.11.2016
comment
Релевантно: gotw.ca/publications/mill17.htm#2   -  person SingerOfTheFall    schedule 17.11.2016
comment
Шаблоны функций-членов см. в этом stackoverflow.com/a/13925256/817643.   -  person StoryTeller - Unslander Monica    schedule 17.11.2016
comment
Я бы сказал, потому что у класса нет перегрузки, тогда как у функции есть.   -  person Jarod42    schedule 17.11.2016


Ответы (1)


С http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#229 на ссылку @danh в комментариях выше:

Заметки о встрече 10:00:

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

person fwyzard    schedule 17.05.2021
comment
Почему вы делаете уже данный комментарий от 2017 года! как новый ответ? - person Klaus; 17.05.2021
comment
Потому что не у всех может возникнуть желание перейти по ссылке и найти соответствующий фрагмент текста в этом связанном документе. - person fwyzard; 18.05.2021