On Tuesday, 24 January 2017 at 11:46:47 UTC, Jonathan M Davis
wrote:
On Monday, January 23, 2017 22:26:58 bitwise via
Digitalmars-d-learn wrote:
[...]
Moving structs is fine. The postblit constructor is for when
they're copied. A copy is unnecessary if the original isn't
around anymore - e.g. passing an rvalue to a function can move
the value; it doesn't need to copy it. Even passing an lvalue
doesn't need to result in a copy if the lvalue is not
referenced at any point after that function call. However, if
you're going to end up with two distinct copies, then they need
to actually be copies, and a postblit constructor will be
called.
[...]
Awesome, thanks - this makes sense.