Learn How To Use Auto-Typed Variables In C++ For Windows Development
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 _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;
}
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 _tmain(int argc, _TCHAR* argv[])
{
auto x = 3, * y = func(), z = 4;
return 0;
}
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:
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.