Auto в c++ — хорошо или плохо?
================================

 Я когда-то слышал про то, что python медленный, по причине того, что в нём переменные имеют автоматически определяют свой тип. На это выделяется оперативная память и мощность процессора. Получается, что если я буду использовать `auto`  

то программа будет медленнее работать?  

  

В общем вопрос:  

Замедлится ли программа, если я буду использовать auto? 

 Компиляция немного замедлится (но ты этого не заметишь), а выполнение, конечно же, нет.  

Порой без auto не обойтись (в шабонных функциях с decltype, со структурными привязками, с лямбдами...), но часто код просто короче и читаемее.  

  

Да, в Python динамическая типизация (т.е. полный срач), а в C++ - нет. В С++ есть динамическое связывание (для виртуальных методов), есть RTTI, но это совсем разные вещи.  

  

Питон работает медленно, потому что он не компилируемый, а интерпретируемый. Т.е. он каждый раз компилируется "на лету". 

 В auto ничего плохого нет. Всё, что он делает - заставляет компилятор самостоятельно определять тип объекта или переменной в зависимости от типа объекта, который присваивается изначально. Но он несколько усложняет понимание кода в будущем, особенно вне среды разработки, когда нельзя навести на правую часть от оператора присваивания и посмотреть тип. Поэтому, если есть такая возможность, я всегда отказываюсь от использования такого синтаксического сахара. 

 Краткий ответ: нет, никак не замедлится. Будет работать точно так же, как если бы ты вручную прописал тип.  

  

Отличие от Python в том, что в Python тип переменной может быть разным при разных вызовах функции. А в C++ тип не прописан явно, но фиксирован и гарантированно восстанавливается на этапе компиляции.