Re[8]: Для чего шаблонной функции нужна особая сигнатура?
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 24.01.23 09:25
Оценка:
Здравствуйте, so5team, Вы писали:

S>Шаблон функции -- это как шаблон для заготовки. Вы берете шаблон и по шаблону изготавливаете деталь, далее используется уже конкретная деталь, а не шаблон.


Совершенно верно. И называются такие изделия "шаблонными": составленные по шаблону, по модели — строго держась ея, сделанный по шаблону, связанный, соотносящийся по значению с существительным "шаблон"

S>Шаблонная функция -- это функция, которая напрямую и используется, которая выполняет одни и те же "шаблонные" действия, но для разных аргументов.


То есть — конкретный результат раскрытия шаблона. Шаблон функции — семейство возможных вариантов функции, шаблонная функция — один из членов этого семейства.

ЕМ>>Только вот какой в этом может быть смысл?


S>Такой же, как в перегрузке вообще. Такой же, как и в наличии специализации для шаблонов.


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

Вообще, все это выглядит очень забавно на фоне нападок на обычную перегрузку C++ — "как можно иметь функции с одинаковыми именами, но разным поведением?!".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.