Recentemente, eu estava me perguntando por que a palavra-chave autofoi escolhida no C ++ 11 para marcar uma variável cujo tipo deve ser inferido pelo compilador, como em
auto x = 1;
Desde a
varparece mais comum em outras linguagens de programação (por exemplo, C #, Scala, JavaScript) e- Pelo que entendi, a nova semântica das
autoquebras de compatibilidade com versões anteriores (raramente era usada, mas tinha um significado diferente nas revisões anteriores do C ++, veja, por exemplo, aqui )
Eu queria perguntar se havia um motivo especial para escolher auto(a favor varou qualquer outra palavra-chave). Houve alguma discussão específica sobre esse problema antes do lançamento do padrão C ++ 11?
Além disso, existem possíveis incompatibilidades que devemos observar ao recompilar o código C ++ herdado com um compilador C ++ 11?
autovs varé a que 90% do seu texto se refere e essa pergunta não tem resultado definitivo. (embora eu não sou o único que votou para fechar)
autofoi proposto para C ++ antes de varser introduzido em C #, portanto, a pergunta deve ser por que o C # não usa auto. var tem um significado diferente em JavaScript e Scala
autopode quebrar a compatibilidade com versões anteriores, mas, dependendo da frequência com quevaré usado como nome de variável em comparação com a frequência com que aautopalavra-chave é usada no código anterior ao 11, o comitê pode ter opinado que quebra a compatibilidade de maneira menos dramática do que a introdução de um novo palavra-chave faria.