Re[3]: Для чего шаблонной функции нужна особая сигнатура?
От: σ  
Дата: 23.01.23 10:21
Оценка: +2
ЕМ>В данном случае то, что мне нужно — отдельный вопрос. Основной вопрос был о том, для чего сигнатура шаблонной функции отличается от сигнатуры перегруженной функции с той же комбинацией типов. Один из вариантов — для обеспечения приоритета. Еще могут быть какие-то основания?

Очевидно, для того, чтобы различать функции с одинаковым типом, но инстанциированные из разных шаблонов
template<typename T, typename U> void f(T, U); // 1
template<typename U, typename T> void f(T, U); // 2


int main()
{
    f<int, double>(0, 0.); // 1
    f<double, int>(0, 0.); // 2
}

(https://timsong-cpp.github.io/cppwp/n4659/temp.over.link#1)
Отредактировано 23.01.2023 13:01 σ . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.