Recentemente, eu estava me perguntando por que a palavra-chave auto
foi escolhida no C ++ 11 para marcar uma variável cujo tipo deve ser inferido pelo compilador, como em
auto x = 1;
Desde a
var
parece mais comum em outras linguagens de programação (por exemplo, C #, Scala, JavaScript) e- Pelo que entendi, a nova semântica das
auto
quebras 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 var
ou 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?
auto
vs 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)
auto
foi proposto para C ++ antes de var
ser 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
auto
pode 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 aauto
palavra-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.