[2.0] Remove deprecation of delete hash[key] (and change its

Leonard Dahlmann leo.dahlmann at gmail.com
Mon Feb 11 09:49:20 PST 2008


Jesse Phillips Wrote:

> On Mon, 11 Feb 2008 12:18:10 -0200, Leandro Lucarella wrote:
> 
> > When doing: delete hash[key] in D 1.0, there is a deprecation error
> > about being an old syntax for hash.remove(key). So now, if you have an
> > hash of objects, and you want to do explicit memory deallocation, you
> > have to do something like this:
> > 
> > auto tmp = hash[key];
> > hash.remove(key);
> > delete tmp;
> > 
> > Which is ugly and nonsense. Maybe remove it from 1.0 could be
> > contraversial, but I think there is no point in conserving this ugly
> > behaviour in 2.0.
> 
> I can't test it now, but I would think that hash.remove(key) would return 
> the removed value. Couldn't find mention in the docs but if it is true
> 
> delete hash.remove(key);
> 
> should work.

Even if remove does return the removed value, it won't work,
since delete needs a lvalue.



More information about the Digitalmars-d mailing list