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

auto abc = 5566;

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

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

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

Ответ 1

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

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

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

Ответ 2

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

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

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

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

Ответ 3

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

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

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