Недавно я задавался вопросом, почему ключевое слово 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, комитет мог бы предположить, что оно нарушает совместимость менее драматично, чем введение нового Ключевое слово будет.