July 2015
Intermediate to advanced
558 pages
13h 31m
English
Consider how you declare an iterator to a vector of strings:
std::vector<std::string> names;
std::vector<std::string>::iterator iter = vec.begin();
The declared type of iter is big and unwieldy and it is a pain to write it explicitly every time. Given that the compiler knows the type of the initializing expression on the right-hand side, that is, vec.begin(), this is also superfluous. Starting with C++11, you can use the auto keyword to ask the compiler to deduce the type of a declared variable using the type of the expression it is initialized with. Thus, the preceding tedium is replaced by the following:
std::vector<std::string> names;
auto iter = vec.begin();
Consider the following statement:
auto var = expr;
The deduced ...
Read now
Unlock full access