WTF did happen with struct constructor and ref in 2.061 ?
deadalnix
deadalnix at gmail.com
Sun Jan 6 04:14:43 PST 2013
On Sunday, 6 January 2013 at 06:14:56 UTC, Ali Çehreli wrote:
> On 01/05/2013 04:58 AM, js.mdnq wrote:
>
> > S s = S(2); foo(s) <==> foo(S(2))
>
> For those to be equivalent, there must be a scope around the
> first one:
>
> { S s = S(2); foo(s); } <==> foo(S(2))
>
> I think that's what you've been proposing: The compiler could
> generate a variable on the stack to be passed to the function
> that takes ref.
>
The compiler must, not could. It have to create the variable on
the stack in order to execute the constructor.
> It would still have the problem of losing potential
> modifications to the variable, which both C++ and D try to
> protect the programmer from.
>
> Ali
More information about the Digitalmars-d
mailing list