C++11 auto and Boost.Auto

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 ...

Get Learning Boost C++ Libraries now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.