On Monday, 8 December 2014 at 16:04:42 UTC, Steven Schveighoffer wrote:
On 12/8/14 10:45 AM, "Marc =?UTF-8?B?U2Now7x0eiI=?= <schue...@gmx.net>" wrote:
On Monday, 8 December 2014 at 15:12:51 UTC, Steven Schveighoffer wrote:
I think you should eliminate scope returns then. They are not useful. I can't think of a single reason why a newly allocated via GC or global reference return should have to be restricted to exist only
within the statement. Both have infinite lifetimes.

It's for references to objects that are owned by the function (or object of which the function is a method). These don't have infinite lifetimes.

Why not? An object is allocated on the heap, and has infinite lifetime.

"object" as in "instance of struct" ;-)

And I was referring to objects owned by something with finite lifetime, e.g. a container.

    struct Array(T) {
        scope ref T opIndex(size_t);
    }

    Array!int container;
    ref x = container[42];  // no
    container[42]++;        // yes
    writeln(container[42]); // yes

Reply via email to