Re: Время жизни временных объектов
От: Videoman Россия https://hts.tv/
Дата: 07.04.21 09:31
Оценка: +3
Здравствуйте, 10000.monkeys, Вы писали:

1M>Поправьте если не прав.

Не прав. Вот тут:
return std::make_unique<test>(s);

из s создается временный std::string который благополучно умирает при возврате std::unique_ptr<test>.

Замени const std::string& s на std::string s
struct test
{
    test(const std::string& s) : s(s) {}
    std::string s;
};

P.S.

Если ты где-то прочитал что const ссылка продлевает время жизни объекта, то это совсем не тот случай. const ссылка будет оставаться валидной только при возврате объекта из функции по значению.
Отредактировано 07.04.2021 11:33 Videoman . Предыдущая версия . Еще …
Отредактировано 07.04.2021 9:33 Videoman . Предыдущая версия .
Отредактировано 07.04.2021 9:33 Videoman . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.