The auto keyword is a declaration specifier. However, the C++ standard defines an original and a revised meaning for this keyword. Before Visual C++ 2010, the auto keyword declares a variable in the automatic storage class; that is, a variable that has a local lifetime. Starting with Visual C++ 2010, the auto keyword declares a variable whose type is deduced from the initialization expression in its declaration. The /Zc:auto[-] compiler option controls the meaning of the auto keyword.
auto declarator ; auto declarator initializer;
The definition of the auto keyword changes in the C++ programming language, but not in the C programming language.
The following topics describe the auto keyword and the corresponding compiler option:
auto Keyword (Type Deduction) describes the new definition of the auto keyword.
auto Keyword (Storage-Class Specifier) describes the original definition of the auto keyword.
/Zc:auto (Deduce Variable Type) describes the compiler option that tells the compiler which definition of the auto keyword to use.