property syntax problems

Robert Jacques sandford at jhu.edu
Thu Feb 5 11:35:23 PST 2009


On Thu, 05 Feb 2009 14:27:27 -0500, Bill Baxter <wbaxter at gmail.com> wrote:

> On Fri, Feb 6, 2009 at 2:34 AM, Robert Jacques <sandford at jhu.edu> wrote:
>> On Thu, 05 Feb 2009 06:55:46 -0500, Alex Burton <alexibu at mac.com> wrote:
>>> int main()
>>> {
>>>     B b;
>>>     b.a.j = 10;     // error b.a is a temporary.
>>> }
>>
>> This isn't a bug, it's a feature. What you wanted to use were ref  
>> returns
>> (see http://www.digitalmars.com/d/2.0/function.html )
>> ref A a() { return mA; }
>
> You could call it a bug that the compiler doesn't warn about the
> modification of a temporary like that in a way that has no side
> effects.  Or maybe it does warn about it if you enable warnings?
>
> --bb

Actually, from that point of view
>>> b.a.j = 10;     // error b.a is a temporary.
isn't the real ( or I think desired ) warning. The real issue is that  
b.a.j results in an unused variable which several other compilers issue  
warnings about and is a much more general issue.



More information about the Digitalmars-d mailing list