Implizite Erzeugung eines std::unique_ptr
-
typedef std::unique_ptr<response> ResponsePtr; struct response { friend std::ostream& operator<<(std::ostream& os, ResponsePtr ptr) { [...] } };std::cout << std::make_unique<response>(myresponse);Wie kann ich es schaffen, dass ich nicht jedes Mal std::make_unique() aufrufen muss? Also quasi eine implizite "Erzeugung/Konvertierung"?
-
Das sollte
friend std::ostream& operator<<(std::ostream& os, reponse const& r)sein. Wer einen unique_ptr hat, muss halt manuell dereferenzieren. Zwinge die Nutzer doch nicht, einen unique_ptr zu verwenden.
-
Doch ich brauche den unique_ptr. Es gibt Klassen die von reponse erben und die diesen Operator ebenfalls benutzen sollen.
-
ptrhelp schrieb:
Doch ich brauche den unique_ptr. Es gibt Klassen die von reponse erben und die diesen Operator ebenfalls benutzen sollen.
Und wiso meinst du einen unique_ptr zu benötigen?
Eine referenz tut es hier auch
-
Ihr habt natürlich Recht, böser Denkfehler
