Having said this, I usually only use type inference when the types are obvious from context.
auto x = func(); // no idea about func return type auto x = new Widget(); // DRY auto sum (auto a, auto b); // template function without boilerplate
Having said this, I usually only use type inference when the types are obvious from context.