Before we go proposing something like replacing 'new Foo( val )' with 'Foo.new( val )' ... which is just so Ruby-esque, but that's okay with me ... we need to consider that 'new' is not used only for classes. Okay, so presumably structs would work the same way, but what of, say, arrays? What would be the equivalent of 'new int[][]( 5, 10 )' given such a change?

As it stands, 'new' behaves like an operator (behaves like, but is really a grammar artifact) and so is consistent with intuition. How would we make something like 'int[][].new( 5, 10 )' make sense *without* having to provide a function (presumably through UFCS) for each arity? And, given the design of D arrays, what would such a function even look like?

Reply via email to