Either way my final proposal doesn't remove it. In short it goes as follows:- allow 0-arg constructors for consistency and cross-cutting issues (like all default args ctor) - use a default one (as is done with per-field constructors) if none or user defined match. The default will blit object with T.init.
A typo: ... if none OF user-defined match. -- Dmitry Olshansky