Очевидно, я предпочел бы использовать std::shared_ptr<T>
или std::unique_ptr<T>
, но я имею дело с некоторым устаревшим кодом от 98/03.Что произойдет, если я верну указатель?
Моя ситуация:
auto* SomeClass::ReturnPtr(void)
{
return this -> UniquePtrObject.get();
};
Что произойдет, если я делаю:
SomeObject.ReturnPtr() -> SomeFunction();
ли временный указатель получить автоматически удаляются? Или я действительно причиняю утечку?
Это заставляет меня думать о выражении, как Rvalue pointer. Указатели Rvalue не имеют смысла, не так ли?
Код устаревшего типа с возвратом типа 'auto *'? – Steephen
Какой «временной указатель» вы говорите? Вы просто возвращаете указатель. Поведение этого не изменилось. –
В дополнение к комментариям выше, просто заметьте, пожалуйста, не используйте пробелы до и после '->' или '.' – Nacho