On Tuesday, 13 May 2014 at 13:40:42 UTC, Jacob Carlborg wrote:
On 13/05/14 15:36, Dicebot wrote:
There are 2 `scope` uses to think about. One is storage class
and in
that context `scope` is more of owned / unique pointer. Other
is
parameter qualifier and that one is closer to ref / borrowed
pointer.
Main problem about making `ref` borrowed pointer is that you
will need
to prohibit storing it in function transitively. This will
need to
become invalid code:
struct A
{
int* ptr;
}
int* gptr;
void foo(ref A a)
{
gptr = a.ptr; // error, can't leak borrowed a.ptr into
global context
}
This feels like too much of a breakage, this is why `scope`
(or `scope
ref`) feels more appropriate.
I always though "scope" would behave like that.
Walter's initial post implies that he wanted to re-used `ref` for
borrowed pointer (which would mean same semantics as `scope`
parameter qualifier)