std::unique_ptr<int> p1(new int);
std::unique_ptr<int> p2(new int);
p2=p1;
Il semble ici que p1 n'est plus "unique" depuis p2 reportez-vous à elle aussi
Il est légal de c++ ? Ne unique_ptr ont copy_semantics ? Si non, et si elle n'a qu'une sémantique de déplacement, soit p1 la valeur NULL après l'attribuer à p2 ?
EDIT:
ok, donc la version correcte est
p2=std::move(p1)
Selon que, après cette attribuer, p1 n'est pas valide ? Et la différence avec auto_ptr est ici? il est plus sûr pour explicitement specfiy transfert de propriété que de façon implicite comme c'est le cas avec auto_ptr je suppose