http://wiki.dlang.org/DIP35

I've talked about this before, but it seems like the right time to formalize it, especially to illustrate the slight conflict it would impose on using 'scope ref' to allow rvalue temporary references. If 'ref' itself were made completely safe using 'scope' and/or 'out' return values, it would be possible to allow even rvalue temporaries to escape by returning from the function they were passed to. It may not in fact be a good programming practice, but that is a different design decision. If returning rvalue references were disallowed, it would therefore pose no threat to using 'scope ref', since 'scope' and 'scope ref' would be fully compatible then. (I'm not specifically in favor of 'scope ref' to mean rvalue temporaries, but at least this compatibility issue is laid on the table. I don't think it's a horrible choice either, because it saves on syntax creep, but its meaning *is* confusing at first glance.)

Reply via email to