"вывода типов". А в сишке сигнатура - всё. Вот и решили заложиться на сигнатуры и инстанцировать их. После оказалось, что какие-то свойства функции могут выводиться из тела - тот же тип возврата. Всё поломалось. Но какая-то совместимость осталось.
С тем же noexcept уже так не получилось. И теперь мучаемся и пишем то, что могло бы быть выведено. И написание нормальных noexcept-правил это то ещё приключение. А почему? А потому что сигнатура.
А const/не const - в С влияет на сигнатуру?
Обсуждают сегодня