On Wednesday, 4 September 2013 at 23:00:07 UTC, H. S. Teoh wrote:
On Wed, Sep 04, 2013 at 02:14:26PM -0700, Ali Çehreli wrote:
On 09/04/2013 01:46 PM, Adam D. Ruppe wrote:

> D does not support implicit struct construction.

That's what I knew.

> Interestingly though, it *does* support it for functions > taking
> classes:
>
> class Foo {
>          this(int i) {}
> }
>
> void foo(Foo f...) {}
>
> void main() {
>          foo(10);
> }

WHAT? :) It even new's one?

But it works only for the ellipsis.

I wonder why the discrepancy...
[...]

Whoa. I never knew about this! It's ... I don't know what to say. It seems to be a cool feature, but it's also ... so scary. Implicit new's
just leaves a lump in my throat. Is this an actual, intentional
feature??!


T

It, in theory, doesn't allocate memory:
"An implementation may construct the object or array instance on the stack. Therefore, it is an error to refer to that instance after the variadic function has returned"

Reply via email to