Non credo che una tale possibilità sia mai stata presa in considerazione dal comitato del C ++.
Inoltre, sebbene FORTRAN avesse un tipo di sistema di tipo implicito (le variabili che iniziano con "I" e "N" erano interi, tutto il resto era reale) Non riesco a capire come una cosa del genere possa funzionare in un blocco linguaggio strutturato come C ++. Ad esempio, considera un codice come questo:
int f() {
int i;
if (something) {
i = 2.0;
In C o C ++ come attualmente definito il significato di questo è abbastanza chiaro: il i = 2.0 sta prendendo 2.0 , convertendolo in int , e quindi assegnando il risultante 2 a i che è stato dichiarato nell'ambito esterno.
Se, tuttavia, hai permesso di omettere auto , questo apparentemente definisce una nuova variabile nell'ambito del blocco controllato dall'istruzione if , e tale variabile ( a quanto pare) hanno tipo double , e i nello scope esterno manterrebbe il suo valore precedente.
Ora ammetto apertamente che a seconda della conversione implicita da double a int qui è probabilmente una cattiva idea - ma è stato parte del linguaggio per così tanto tempo (decenni) che è effettivamente impossibile cambialo ora.
In breve, se si lascia omettere auto , si otterrebbe quasi certamente una quantità sconosciuta (ma quasi certamente abbastanza grande) di codice esistente. Data l'importanza della retrocompatibilità in C ++, questo sarebbe sufficientemente inaccettabile che non riesco a immaginare che il comitato possa mai dare una seria considerazione.