Properties: a.b.c = 3
Jarrett Billingsley
jarrett.billingsley at gmail.com
Tue Jul 28 20:50:33 PDT 2009
On Tue, Jul 28, 2009 at 10:33 PM, Walter
Bright<newshound1 at digitalmars.com> wrote:
> The issue is what if b is a property, returns a temporary object, and that
> temp's .c field is uselessly set to 3?
So, the issue is that 'a.b()' returns a struct by value. Such return
values should always be considered rvalues. Furthermore,
'rvalue.field' should also only yield an rvalue. Therefore, 'a.b.c =
3' should be flagged by the compiler as being as nonsensical as "5 =
x".
The compiler would flag this as an error, and the solution would of
course be to make a.b's return value by reference instead.
More information about the Digitalmars-d
mailing list