Michel Fortin wrote:
On 2010-10-03 09:59:16 -0400, bearophile <bearophileh...@lycos.com> said:

Page 19:
Unlike C++, values can be moved in memory Postblit is used to “adjust” things after a move<

OK, so a moving GC needs to call the Postblit each time it moves a struct.

But isn't postblit used only when doing a copy? I think the last word in the quote should be "copy", not "move". So a moving GC does not have to call postblit.

Right.

In D, all struct (and class) instances are, by definition, movable using 
memcpy().

The advantage is not just enabling a moving GC, but it also enables a whole host of optimizations that are not possible in C++.

C++0x tries to address this problem with rvalue references and moving 
constructors.

Reply via email to