Originariamente inviato da shodan
Certo che puoi, ma l'operazione di move dev'essere esplicita, altrimenti è implicita la copia.
Quindi per utilizzare l'operatore di affezione con la move semantics devo fare

codice:
v1 = std::move(v2)
? Scusa ma sono un po' confuso... xD. Se invece non ci fosse l'operatore normale (che però mi serve, ovviamente) basterebbe utilizzare la sintassi tradizionale?

EDIT: Mmmmh. Sto cominciando a capite! =). Su internet si parla praticamente solo dell'operatore di affezione e del costruttore di copia (almeno dove ho letto io). Ma teoricamente posso creare un move constructor per ogni costruttore che ho fatto, no? Potrei quindi, se ho un std::vector temporaneo che non mi serve più e che ho già creato:

codice:
std::vector<double> V({0,1,2,3});
Vector v1(std::move(V))
Per riassumere: prevedo sia i costruttori che quelli con la move semantics. E questi ultimi li invoco esplicitamente utilizzando la funzione std::move quando li ho bisogno, giusto?