Увеличивает ли auto в С++ 11 время компиляции? - программирование
Подтвердить что ты не робот

Увеличивает ли auto в С++ 11 время компиляции?

auto abc = 5566;

Насколько мне известно, компилятор знает abc is int во время компиляции, поэтому он не будет влиять на производительность выполнения.

Однако, делает ли это время компиляции более длинным?

Спасибо заранее.

4b9b3361

Ответ 1

auto - один символ длиннее int, поэтому lexer определенно должен делать больше работы.

С другой стороны, компилятору больше не нужно проверять, что пользователь предоставил соответствующий тип, поэтому я думаю, что auto будет немного быстрее.

В конце концов, вам, вероятно, не следует выбирать между типом вывода и явным набором текста в зависимости от соображений производительности. Намерение и ясность должны быть решающими факторами.

Ответ 2

Это может быть, или это может быть не так, это зависит от компилятора. Разумеется, выполнение этого не является обязательным стандартом.

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

Вам было бы лучше беспокоиться о более "макроэкономических" проблемах, таких как алгоритм и выбор структуры данных. Вы почти наверняка получите лучшую отдачу от инвестиций, чем беспокоитесь о том, быстрее или нет выбор типа авто или нет.

Использование auto в создании переменных - это не столько производительность, сколько упрощение вашей жизни как кодера.

Ответ 3

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

если вы хотите получить дополнительную информацию: время компиляции или время выполнения С++ 11?

если вы хотите узнать, следует ли использовать auto: Сколько стоит слишком много с ключевым словом С++ 11 auto?