auto-typed variables is a C++11 feature that allows the programmer to declare a variable of type auto, the type itself being deduced from the variable’s initializer expression. The auto keyword is treated as a simple type specifier (that can be used with * and &), and its semantics are deduced from the initializer expression.
auto-typed Variables Examples
int IntFnc() {}
bool BoolFunc() {}
char* CharSFunc() {}
int _tmain(int argc, _TCHAR* argv[])
{
// x is int
auto x = IntFunc();
// y is const bool
const auto y = BoolFunc();
// w is char*
auto w = CharSFunc();
return 0;
}
Multi-declarator auto
The C++11 standard includes the multi-variable form of auto declarations, such as:
int* func(){}
int _tmain(int argc, _TCHAR* argv[])
{
auto x = 3, * y = func(), z = 4;
return 0;
}
The restriction with multi-declarator auto expressions is that the variables must have the same base type. For example, the following line of code is well-formed:
auto x = 3, y = *(new int);
because x and y have the same base type : int, while the following code:
auto x = 3, y = 3.5;
will generate the error: [bcc64 Error] File1.cpp(11): 'auto' deduced as 'int' in declaration of 'x' and deduced as 'double' in declaration of 'y'. This feature is supported by the Clang-enhanced C++ compilers.



