Then the usage of auto was expanded to help when writing generic code.
I think both of these cases are valid uses of auto, but people seem to have run away with it and will literally use it for statements like auto i = 0;
As a professional C++ coder, I personally don't have a problem with auto (or var in C# for that matter) but I'd prefer people use it where it's useful rather than for every little thing.