digitalmars.D - another reason to have AAs not insert on lookup
- Ben Hinkle (12/12) Mar 31 2005 Over on the D.learn group someone had a property foo() that returned an ...
Over on the D.learn group someone had a property foo() that returned an AA and then wanted to say foo["hello"] to lookup an element. But since lookup can insert and inserting can change the size and ptr of an AA the compiler needs the result of foo() to be an lvalue, which it isn't. I recommended that they store the result of foo() in a temporary bar and write bar["hello"] since in their situation they know "hello" is in the AA so it will never actually insert. If indexing into an AA didn't require an lvalue then they wouldn't have had the problem, so I figure I'd post that comment here as more info for the discussion in AA lookup behavior. It would still be true that foo["hello"] = "world" would need an lvalue so that would error. -Ben
Mar 31 2005