Size: a a a

2020 August 11

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Динпамять короче
источник

VS

Vladimir Suisei in supapro.cxx
Artöm Bakri Al-Sarmini
Он создается через new в make_shared
Т.е. make_shared это инструмент создания объекта и получения указателя, а не (как казалось бы из названия) инструмент получения указателя для существующего объекта?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Никому так не кажется, make_shared по определению создает объект
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Указатель на существующий объект принимает ктор shared_ptr, ты попутал видимо
источник

VS

Vladimir Suisei in supapro.cxx
Artöm Bakri Al-Sarmini
Никому так не кажется, make_shared по определению создает объект
Хм, я всегда читал в смысле make it pretty (сделай это красивым), а не в смысле "создать"
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
make_* всегда создает объект и никогда немперенимает владение
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Vladimir Suisei
Хм, я всегда читал в смысле make it pretty (сделай это красивым), а не в смысле "создать"
Там в смысле создать, как и в любой std::make_*
источник

VS

Vladimir Suisei in supapro.cxx
Т.е. если я хочу для существующего - то мне надо использовать конструктор
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Да
источник

ПК

Побитый Кирпич... in supapro.cxx
make это фабрика всегда
источник

VS

Vladimir Suisei in supapro.cxx
Т.е. make_shared это все равно что share_ptr<T> (new a)
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Vladimir Suisei
Т.е. make_shared это все равно что share_ptr<T> (new a)
Очень грубо
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Она выделяет единый участок памяти под объект и контрольный блок
источник

VS

Vladimir Suisei in supapro.cxx
Ок я понял
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
Ок я понял
И не удаляется пока жив хотя бы один weak_ptr
источник

VS

Vladimir Suisei in supapro.cxx
А если я в цикле насоздаю через make_shared всякого, то они все почистятся?
источник

AS

Anatoly Shirokov in supapro.cxx
Vladimir Suisei
А если я в цикле насоздаю через make_shared всякого, то они все почистятся?
Да
источник

AP

Alexander Potapov in supapro.cxx
Хотя в цикле лучше не аллоцировать
источник

VS

Vladimir Suisei in supapro.cxx
Ну я для справки
источник

VS

Vladimir Suisei in supapro.cxx
А как для шаблонного класса сделать?
https://ideone.com/UmJ1ch не работает
источник