On Saturday, 13 February 2016 at 19:25:37 UTC, Ola Fosheim Grøstad wrote:
I'm not sure what you mean by "has move semantics" here. It does not have C++'s move semantics, no, but I would say D has its own move semantics. It has a move() function that transfers raw state between objects, and D structs are supposed to be designed so they are movable by means of raw bit transfer, allowing the compiler and GC to move them around as it sees fit. But maybe I'm missing something?

Well, but that is like saying that C++03 also had move semantics. There is nothing special about D's move(), it's just a library function?

D "guarantees" NRVO which is what enables its move semantics, C++ did/does not.

Quotes because IIRC(?) it used to be part of the spec and it isn't anymore, I don't think Walter or Andrei have addressed this yet so I'm not sure if it's intended.

Reply via email to