I don't think Herb's points apply to an ordinary declare-an-object-and-immediately-initialize-using-the-constructor, do they?
He gives an example using aggregate initialization, but that's not the same thing:
// Classic C++ declaration order // Modern C++ style
employee e{ empid }; auto e = employee{ empid };
widget w{ 12, 34 }; auto w = widget{ 12, 34 };
He makes the case that it's nicer to use
auto pretty much wherever we can, to avoid repeating ourselves regarding type, and to avoid unexpected conversions. The
auto keyword doesn't apply in our case, there's no way to use
auto to simplify a statement like:
Widget w(1,2,3);