@maximsemin23

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

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

В общем вопрос:
Замедлится ли программа, если я буду использовать auto?
  • Вопрос задан
  • 584 просмотра
Решения вопроса 2
EgoRusMarch
@EgoRusMarch
C++ Developer
Компиляция немного замедлится (но ты этого не заметишь), а выполнение, конечно же, нет.
Порой без auto не обойтись (в шабонных функциях с decltype, со структурными привязками, с лямбдами...), но часто код просто короче и читаемее.

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

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

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы