Недавно я задавался вопросом, почему ключевое слово autoбыло выбрано в C ++ 11 для обозначения переменной, тип которой должен выводиться компилятором, как в
auto x = 1;
поскольку
varкажется более распространенным в других языках программирования (например, C #, Scala, JavaScript), и- Насколько я понимаю, новая семантика
autoобратной совместимости разрывов (она использовалась редко, но имела другое значение в предыдущих версиях C ++, см., Например, здесь )
Я хотел спросить, была ли особая причина для выбора auto(в пользуvar или любого другого ключевого слова). Было ли какое-либо конкретное обсуждение этой проблемы до выпуска стандарта C ++ 11?
Кроме того, есть ли какие-либо возможные несовместимости, на которые мы должны обратить внимание при перекомпиляции устаревшего кода C ++ с компилятором C ++ 11?
autoПротив varвопроса , что 90% вашего текста относится, и этот вопрос не имеет окончательного результата. (хотя я не тот, кто проголосовал за закрытие)
autoбыл предложен для C ++ до того, как varбыл введен в C #, поэтому вопрос должен заключаться в том, почему C # не использует auto. У var разные значения в JavaScript и Scala
autoможет нарушить обратную совместимость, но, в зависимости от того, как частоvarиспользуется имя переменной по сравнению с тем, как частоautoключевое слово используется в коде до 11, комитет мог бы предположить, что оно нарушает совместимость менее драматично, чем введение нового Ключевое слово будет.