If I do this:
---snip---
class Foo { public Bar bar; }
class Bar { public int a; }
static void t(Foo foo)
{
unowned Bar bar = foo.bar;
}
---snip---
...then bar becomes, as expected, an alias for foo.bar.
However, if I change the classes to structures, then the 'unowned' is
accepted silently but now bar becomes a *copy* of foo.bar.
After a bit of thought I can see why this happens, as structures are
strictly pass-by-reference, but it nevertheless came as a surprise.
Given that the two cases look very similar but have decidedly different
semantics, is there any chance of getting an error if people use
'unowned' with a non-value type?
Also, before I give up and use pointers, is there any way of getting an
alias to a structure member?
--
┌─── dg@cowlark.com ───── http://www.cowlark.com ─────
│
│ "I have a mind like a steel trap. It's rusty and full of dead mice."
│ --- Anonymous, on rasfc
Attachment:
signature.asc
Description: OpenPGP digital signature