On 2010-03-19 22:56:59 -0400, Andrei Alexandrescu
<[email protected]> said:
So I was thinking of the following: how about still returning a
reference, but define a rule in the language that references can't
escape - you can't take their address and squirrel it away; the only
thing you can do is use them right on the spot or pass them down to
functions.
Can functions return the reference, or a reference to a part of the
original referenced value? It's safe to do this only in some specific
contexts, but the compiler already has some difficulty dealing with
this. See bug 3925:
<http://d.puremagic.com/issues/show_bug.cgi?id=3925>
Another effect is that it should prevent closures from using that
transitory ref value, since a closure can be leaked... unless we add
transitory closures. :-)
--
Michel Fortin
[email protected]
http://michelf.com/