Offensichtlich würde ich lieber std::shared_ptr<T>
oder std::unique_ptr<T>
verwenden, aber ich habe mit etwas Legacy-Code von 98/03 zu tun.Was passiert, wenn ich einen Zeiger zurückgebe?
Meine Situation ist:
auto* SomeClass::ReturnPtr(void)
{
return this -> UniquePtrObject.get();
};
Was passiert, wenn ich tun:
SomeObject.ReturnPtr() -> SomeFunction();
Hat der temporäre Zeiger automatisch gelöscht werden? Oder verursache ich tatsächlich ein Leck?
Das lässt mich an einen Ausdruck wie Rvalue Zeiger denken. Rvalue-Zeiger ergeben keinen Sinn, oder?
Legacy-Code mit Rückgabetyp als 'auto *'? – Steephen
Worüber "temporärer Zeiger" sprichst du? Sie geben nur einen Zeiger zurück. Das Verhalten änderte sich nicht. –
Oben auf den Kommentaren, nur eine Notiz, bitte verwenden Sie keine Leerzeichen vor und nach '->' oder '.' – Nacho