и auto deduction rules? А также разницу между ними
Как я понял, template генерирует все возможные варианты и подставляет аргумент в них до тех пор, пока не подойдёт нужный
На RSDN было сообщение Толи Широкова про это, там 10 строк и всё сразу ясно. У Jason Turner тоже можно найти видео. (ты понял неправильно)
Окей, постараюсь найти, спасибо
Попытка номер два) Компилятор пытается вывести аргумент шаблона, сравнивая тип соответствующего параметра шаблона с типом аргумента, используемого при вызове функции, т.е. возможно ли подставить условно double в шаблонную функцию А при auto вычисляется автоматически из инициализатора переменной, тк нельзя писать условно auto t; В случае функций тип будет оцениваться из возвращаемого выражения return. Правильно ли я понял на этот раз?
Так нет кода...я пытаюсь теорию понять) Как работает Template argument deduction и auto deduction rules
@anatolijs помогай, я лично не врубаюсь...
Мой вопрос можно переформулировать так: "Как определяет тип данных auto и templates, а также разница между ними"
Вкратце фича в этом: - шаблонам функций в 99% не надо указывать параметры шаблонов - шаблонам классов в 100% случаев НАДО указывать параметры шаблона явно - ДАЛЕЕ ФИЧА: мы говорим компилятору, что ВОТ ЭТОТ КОНСТРУКТОР шаблонного класса (может и любую функцию можно) можно использовать без параметров шаблона класса, и те параметры, что использованы при вызове одной из этих функций, будут параметрами для инстанциации шаблона класса.
auto deduction rules — эт я не понял что, и при чем оно тут... (ни при чём)
Спасибо, буду углубляться в это
@anatolijs я верно изложил ?
для классов можно CTAD нынче использовать, упрощает жизнь
Так это вроде оно и есть...
Липпман может. Также у майерса прям в первой главе по эффективному современному С++ рассказано.
У Липпмана не полностью, у Майерса по-моему все corner cases есть
ну там и auto deduction rules и template тоже
А что за auto deduction rules и как это в твоей голове связано с CTAD ?
это всё прекрасно, но зачем, если есть https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121
Потому что не все хотят платить 64 доллара за Complete Guide. Некоторым достаточно не очень полного, но более краткого.
я его купил в электронном виде после цпп раша)
Ну в том плане что и то автоматически тип подставляет, и то Но есть же разница
Это совершенно разные вещи.
спасибо, теперь знаю что прочитать следующим после Майерса
Ну вот если разные, то в чём? Как раз этими вопросами и задаюсь)
Вообще, надо было ДО
Ну вот БАБА, и КОШКА. Совершенно же разные вещи, так? НО ВОТ В ЧЁМ ОНИ РАЗНЫЕ ?
Почему же ? Майерса читал после Липпмана через строчку иногда, мало нового но много полезного.
Потому что это — учебник по шаблонам в С++, базовый.
А какой тогда не базовый?
Ладно...Просто на первый же взгляд кажется похожими вещами, и то автоматически подставляет, и то
Но на этом их похожесть заканчивается
Если не ищите быстрых ответов и готовы к видео-лекциям, то у Константина Владимирова на эту тему есть как материал как уровнем по-проще, так и по-сложнее
Спасибо, уже в процессе ознакомления
Что касается отличий между template argument deduction и auto deduction rules, то, если я сам всё верно помню, они идентичны. Но в случае вывода аргументов функций больше сложностей не относящихся непосредственно к обсуждаемому вопросу, но связанных с ним (например, выбор перегрузки)
Обсуждают сегодня