Preface
C++ is a strongly typed language, and its type must be clearly stated when declaring a variable. However, in practice, it is difficult to infer the type of the value of an expression. Especially with the emergence of template types, it becomes more difficult to figure out the return type of some complex expressions. In order to solve this problem, auto introduced in C++11 has two main uses: automatic type inference and return value occupancy. The semantics of auto in C++98 to identify temporary variables have been removed in C++11 due to their minimal and redundant use. The two standard autos before and after are completely different concepts.
1. Automatic type inference
auto automatic type inference is used to infer the data type of the variable from the initialization expression. Through auto's automatic type inference, our programming work can be greatly simplified. Here are some examples of using auto.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
|
2. Return value occupancy
1 2 3 4 5 6 |
|
3. Precautions for use
1. We can use valatile, pointer (*), reference (&) , rvalue reference (&&) to modify auto
1 2 3 4 |
|
2. Variables declared with auto must be initialized
1 |
|
3. Auto cannot be used in combination with other types
1 |
|
4. Function and template parameters cannot be declared as auto
1 2 3 4 |
|
5. Variables defined on the heap and expressions using auto must be initialized
1 2 3 4 5 6 7 |
|
6. Think that auto is a placeholder, not a type of its own, so it cannot be used for type conversion or other operations, such as sizeof and typeid
1 2 3 4 |
|
7. Variables defined in an auto sequence must always be deduced to the same type
1 |
|
8. Auto cannot be automatically deduced into CV-qualifiers (constant & volatile qualifiers), unless it is declared as a reference type
1 2 3 4 5 6 7 8 9 |
|
9. auto will degenerate into a pointer to an array, unless it is declared as a reference type
1 2 3 4 5 6 |
|
Summary
The above is the entire content of this article. I hope the content of this article can be helpful to everyone in learning or using C++. If you have any questions, you can leave a message to communicate.
For more articles related to the use of auto, the new feature of C++11, please pay attention to the PHP Chinese website!