On Sunday, 28 December 2014 at 03:09:20 UTC, Andrei Alexandrescu wrote:
Please comment: http://wiki.dlang.org/DIP25

This seems like it may be painful (in terms of breaking existing code):

"Member functions of structs must qualify this with inout if they want to return a result by ref that won't outlive this."

This breaks all ranges that return ref front, no? (assuming they aren't qualified inout, which appears to be the case in the majority of ranges in std.algorithm/range).

Clarification: how does this DIP play with auto ref returns? Infer non-ref if not qualified inout?

auto ref foo(ref int x) { return x; } // non-ref due to lack of inout on x?

Reply via email to