Jonathan M Davis:
Adding much of _anything_ to the language is generally considered expensive.
Sometimes you add from a language removing something, like allowing handy code like this, removing such limitations and making the language more regular/uniform:
class Foo { int x, y; } struct Bar { int x, y; } void main() { auto f1 = new Foo(1, 2); auto f2 = new Foo(1); auto b1 = new Bar(10, 20); auto b2 = new Bar(10); } Bye, bearophile