On 4/19/11 1:04 PM, Timon Gehr wrote:
Steven Schveighoffer wrote:
And one other note -- delete will eventually be deprecated. In order to
free memory, you must use clear and GC.free.
-Steve
Well, why? It seems like a bad decision to me.
The feature is not going away, just the keyword.
"delete" is a gratuitous carryover from C++, which had to invent it
because the need for manual object disposal predated the introduction of
templates.
D stays a systems programming language but also has a safe subset and
generally offers better safety guarantees than C++. It is excessive to
allocate a keyword to a feature that's fundamentally unsafe,
particularly since the underlying feature offers considerably fewer
guarantees than its C++ counterpart. (Some GCs are unable to implement
"delete" meaningfully.)
Manual memory disposal for the GC heap will be implemented as a template
function with semantics defined by the GC implementation.
Andrei