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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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:
1 2 3 4 5 6 7 |
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:
1 |
auto x = 3, y = *(new int); |
because x and y have the same base type : int
, while the following code:
1 |
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.
Design. Code. Compile. Deploy.
Start Free Trial
Free C++Builder Community Edition