Why do I need to explicitly write the 'auto' keyword?

  • A+

I am moving towards C++11 from C++98 and have become familiar with the auto keyword. I was wondering why we need to explicitly declare auto if the compiler is able to automatically deduce the type. I know C++ is a strongly typed language and this is a rule but was it not possible to achieve the same outcome without explicitly declaring a variable auto?

Dropping the explicit auto would break the language:


int main() {     int n;     {         auto n = 0; // this shadows the outer n.     } } 

where you can see that dropping the auto would not shadow the outer n.


:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: