170 похожих чатов

Ку, это нормальная практика делать из unique_ptr shared ? у

меня есть функция и она возвращает unique_ptr, но функция слишком общая и юзается много где и где то его результат должен идти как shared и передаваться в другое место.

7 ответов

20 просмотров

А что смущает? Конструктор это позволяет: template< class Y, class Deleter > shared_ptr( std::unique_ptr<Y, Deleter>&& r );

главное делать это не ручками забирая указатель

Kona-Kona Автор вопроса
Anatoly Shirokov
А что смущает? Конструктор это позволяет: template...

на стековерфлоу ругаются просто. Be aware that while not allowed the compiler (at least not gcc) will actually not prevent (or even warn) if you accidentally (e.g. by changing the pointer type of a member variable) assign a std::unique_ptr to a std::shared_ptr.

Kona-Kona Автор вопроса
Anatoly Shirokov
К чему это?

https://stackoverflow.com/questions/37884728/does-c11-unique-ptr-and-shared-ptr-able-to-convert-to-each-others-type К этому std::shared_ptr<std::string> shared = std::make_unique<std::string>("test");

Kona Kona
на стековерфлоу ругаются просто. Be aware that wh...

Тут просто предупреждают, что неявный каст unique в shared может не выкинуться в warning и ты его не увидишь при компиляции, но если ты знаешь, что ты намеренно делаешь из unique shared, то все норм.

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
Карта сайта