On 24 April 2013 04:44, Walter Bright <newshou...@digitalmars.com> wrote:
> On 4/23/2013 8:33 AM, Manu wrote: > >> "The r-value being passed is assigned to a stack allocated temporary, >> which has >> a lifetime that is identical to any other local variable, ie, the >> lifetime of >> the function in which it appears." >> There, I defined it. >> > > Locals have a lifetime that is terminated by the closing } of the scope > they appear in. There can be many such scopes in a function. > > There's also the issue of: > > a || b || c > > If b creates a temporary, it's life ends at the end of the expression or > statement - it's complicated. > Is it actually complicated? Enclosing scope seems fine too. Can you suggest a case where it could escalate to an outer scope via a scope-ref argument? So let's say then, that lifetime should be identical to a local declared in the same location. No change of any rules is required, it will work as expected.