Я читал документацию стандартной библиотеки и обнаружил, что есть некоторые функции, такие как make_tuple.Насколько я вижу, эти функции служат только одной цели: создать экземпляр класса с помощью автоматического вывода аргументов шаблона.Поскольку CTAD не был доступен до C ++ 17, пришлось вызывать связанные make-функции.Этот пробел был заполнен только в C ++ 17.Теперь мне интересно, почему он не мог быть реализован ранее "так же, как и вывод аргумента шаблона функции?"Должен быть пример, приводящий к неоднозначности, которую нельзя решить до C ++ 17, я полагаю.Кто-нибудь может это подтвердить?В чем разница между функциями и классами в этом отношении?Спасибо!