'auto' is undoubtedly the least used C++ keyword. This is because it's always redundant. auto indicates local automatic storage type, for example:
auto int x;
auto char s;
The more common form of declaring x and s is:
int x; // identical to auto int x;
char s; // identical to auto char s;
Thus, 'auto' simply documents more explicitly the storage type of an object but it's never really needed. In pre-standard C++, the default type of incomplete declarations such as the following was int:
volatile x; // construed as 'volatile int x;'
const y = 0; // construed as 'const int y=0;'
In those days, you could also write:
auto n; // equivalent to 'auto int n'
However, standard C++ doesn't permit declarations with implicit int anymore. Consequently, 'auto' has become completely optional.