Se você leu a lista IAQ (perguntas infrequentes), sabe que o auto é útil principalmente para definir ou declarar um veículo:
auto my_car;
Um veículo que está constantemente estacionado ao ar livre:
extern auto my_car;
Para quem não tem senso de humor e quer "apenas os fatos, senhora": a resposta curta é que nunca há motivo para usar auto
. A única vez que você tem permissão para usar auto
é com uma variável que já tem auto
classe de armazenamento, então você está apenas especificando algo que aconteceria de qualquer maneira. Tentar usar auto
em qualquer variável que ainda não tenha a auto
classe de armazenamento resultará na rejeição do código pelo compilador. Suponho que, se você quiser ser técnico, sua implementação não precisa ser um compilador (mas é) e, teoricamente, pode continuar a compilar o código depois de emitir um diagnóstico (mas não vai).
Pequeno adendo de kaz :
Também existe:
static auto my_car;
que requer um diagnóstico de acordo com a ISO C. Correto, pois declara que o carro está quebrado. O diagnóstico é gratuito, mas desligar a luz do painel vai custar oitenta dólares. (Vinte ou menos, se você comprar seu próprio dongle USB para diagnóstico on-board do eBay).
O referido extern auto my_car
também requer um diagnóstico e, por isso, nunca é executado através do compilador, a não ser pelos funcionários municipais encarregados da fiscalização do estacionamento.
Se você vê muito extern static auto ...
em qualquer base de código, você está em uma má vizinhança; procure um emprego melhor imediatamente, antes que todo o lugar se transforme em Rust.
auto
pode ser especificada, mas não acontecerá por padrão?