Size: a a a

2020 August 17

AK

Andrei K in pro.cxx
У shared_ptr размытый лайфтайм, и кроме того дополнительная индирекция, потому что shared_ptr держит указатель на шаред_стейт.
источник

AS

Alex Sandrov in pro.cxx
Andrei K
У shared_ptr размытый лайфтайм, и кроме того дополнительная индирекция, потому что shared_ptr держит указатель на шаред_стейт.
размытый?
источник

AK

Andrei K in pro.cxx
Andrei K
Указателей не надо боятся, это именно тот случай, когда их использовать правильно. unique_ptr у владельца и всем остальным указатели.
Само собой, если заранее размер известен — сделать reserve вектору.
источник

AK

Andrei K in pro.cxx
Alex Sandrov
размытый?
Глядя на код программы с shared_ptr не понятно когда убивается объект. Практически во всём хайлоад коде, что мне встречался шаред_птры забанены.
источник

AK

Andrei K in pro.cxx
Лучше чуть-чуть приложить усилия к планированию лайфтайма на стадии дизайна.
источник

AS

Alex Sandrov in pro.cxx
Andrei K
Глядя на код программы с shared_ptr не понятно когда убивается объект. Практически во всём хайлоад коде, что мне встречался шаред_птры забанены.
Окак, я всегда думал, что объект уничтожается, когда число ссылок 0
источник

AK

Andrei K in pro.cxx
Alex Sandrov
Окак, я всегда думал, что объект уничтожается, когда число ссылок 0
Это конечно так, но когда именно у него становится 0 ссылок — не прозачно.
источник

AS

Alex Sandrov in pro.cxx
Ну ок, надо переосмыслить жизнь и переходить на unique_ptr
источник

AS

Alex Sandrov in pro.cxx
Благо у меня в коде всё using-ами забиндено
источник

m

magras in pro.cxx
Набросал простой бенч итерации по контейнерам: https://quick-bench.com/q/r6xB4UKH3yyvWeugEp17-nQv3p4
В реальном приложении это может быть не заметно на фоне полезной работы, но все-таки.
источник

N

Nikitin Alexey in pro.cxx
magras
Набросал простой бенч итерации по контейнерам: https://quick-bench.com/q/r6xB4UKH3yyvWeugEp17-nQv3p4
В реальном приложении это может быть не заметно на фоне полезной работы, но все-таки.
Корректней все-таки будет вынести  "static const auto values = GenerateValues()" за пределы const auto& GetValues(). Результаты станут отличаться еще больше
источник

m

magras in pro.cxx
Nikitin Alexey
Корректней все-таки будет вынести  "static const auto values = GenerateValues()" за пределы const auto& GetValues(). Результаты станут отличаться еще больше
На сколько я знаю, фреймворк замеряет только то что находится в цикле for (auto _ : state).
источник

N

Nikitin Alexey in pro.cxx
magras
На сколько я знаю, фреймворк замеряет только то что находится в цикле for (auto _ : state).
Да, похоже на то. Это я неправ. Результаты остались без изменений
источник

MZ

Max Ziua in pro.cxx
Почему deleter shared_ptr полиморфный?
источник

m

magras in pro.cxx
Max Ziua
Почему deleter shared_ptr полиморфный?
Если я правильно понял вопрос, для того чтобы можно было работать с incomplete типами.
источник

ПК

Побитый Кирпич... in pro.cxx
magras
Если я правильно понял вопрос, для того чтобы можно было работать с incomplete типами.
Дак в юнике тоже можно
источник

m

magras in pro.cxx
Побитый Кирпич
Дак в юнике тоже можно
Без определения типа unique_ptr нельзя освободить. Только сегодня же это обсуждали.
источник

MZ

Max Ziua in pro.cxx
magras
Если я правильно понял вопрос, для того чтобы можно было работать с incomplete типами.
Странно, что это отличается от unique_ptr
источник

MZ

Max Ziua in pro.cxx
Не вижу нормальной обоснованности такого дизайна
источник

m

magras in pro.cxx
Max Ziua
Странно, что это отличается от unique_ptr
Это удобнее. А shared_ptr и так достаточно дорогой. Но это мои умозаключения, у меня нет инсайдов.
источник