Сообщение Re: Время жизни временных объектов от 07.04.2021 9:31
Изменено 07.04.2021 9:33 Videoman
Re: Время жизни временных объектов
Здравствуйте, 10000.monkeys, Вы писали:
1M>Поправьте если не прав.
Не прав. Вот тут:
из s создается временный std::string который благополучно умирает при возврате std::unique_ptr<test>.
Замени const std::string& s на std::string s
P.S.
Если ты где-то начитался что const ссылка продлевает время жизни объекта, то это совсем не тот случай. const ссылка будет оставаться валидной только при возврате объекта из функции по значению.
1M>Поправьте если не прав.
Не прав. Вот тут:
return std::make_unique<test>(s);
из s создается временный std::string который благополучно умирает при возврате std::unique_ptr<test>.
Замени const std::string& s на std::string s
P.S.
Если ты где-то начитался что const ссылка продлевает время жизни объекта, то это совсем не тот случай. const ссылка будет оставаться валидной только при возврате объекта из функции по значению.
Re: Время жизни временных объектов
Здравствуйте, 10000.monkeys, Вы писали:
1M>Поправьте если не прав.
Не прав. Вот тут:
из s создается временный std::string который благополучно умирает при возврате std::unique_ptr<test>.
Замени const std::string& s на std::string s
P.S.
Если ты где-то прочитал что const ссылка продлевает время жизни объекта, то это совсем не тот случай. const ссылка будет оставаться валидной только при возврате объекта из функции по значению.
1M>Поправьте если не прав.
Не прав. Вот тут:
return std::make_unique<test>(s);
из s создается временный std::string который благополучно умирает при возврате std::unique_ptr<test>.
Замени const std::string& s на std::string s
P.S.
Если ты где-то прочитал что const ссылка продлевает время жизни объекта, то это совсем не тот случай. const ссылка будет оставаться валидной только при возврате объекта из функции по значению.