On Tuesday, 26 May 2015 at 10:19:52 UTC, Marc Schütz wrote:
... to be used in templates and for enforcing these rules:
http://wiki.dlang.org/User:Schuetzm/scope3#.40safe-ty_violations_with_borrowing

There's at least a plan. Nice!

One thing, though. I'm lacking a section in the document linked above on how `foreach` could be `scope`-enhanced so that an element reference of an aggregate doesn't escape its foreach scope.

    char[] saved_line;
    string saved_str;
    foreach (scope line; File("foo.txt").byLine)
    {
        saved_line = line; // should give error
        saved_line = line.dup; // should be ok
        saved_str  = line.to!string; // should be ok
    }

provided that `byLine` returns a reference to a volatile internal buffer.

Reply via email to