Trimballer un unique_ptr avec la sémantique de mouvement
Hello,
J'aune classe dotée d'un membre constant de type unique_ptr, qui la plupart du temps ne sera pas associé à une donnée (pointera donc sur null). POur les cas où il doit l'être, l'initialisation se fait via un argument du constructeur, qui a une valeur par défaut (nullptr).
Question 1 :
Cet argument optionnel devrait-il être de type pointeur ou unique_ptr ? J'aurais tendance à opter pour le second (car l'utilisateur qui a assigné le pointeur ne fait pas face à une ambiguité sur le devenir de l'emplacement mémoire), mais cela induit à se poser des questions sur le coût de la construction (?) par rapport à un nullptr.
Question 2 :
La valeur du pointeur (ou de l'unique_ptr) est indiquée très loin en amont (l'argument est passé via 4 fonctions en cascade). Je pensais me mettre à la sémantique de mouvement, mais comment mettre ça en œuvre ? Les fonctions prendraient un unique_ptr<>&& ? Et l'argument est donné avec un std::move() ?
Merci.