Size: a a a

2020 May 01

MM

Mikhail Matrosov in pro.cxx
на современном компиляторе unique_ptr оптимизируется в ноль
источник

MM

Mikhail Matrosov in pro.cxx
и никаких багов, и супер простой код
источник

R

Ruben in pro.cxx
компилятор старый, на gcc 4.х и с этим тоже ничего не поделать
источник

MM

Mikhail Matrosov in pro.cxx
Ruben
компилятор старый, на gcc 4.х и с этим тоже ничего не поделать
ага. ну тогда я бы предложил посмотреть, как он справляется с unique_ptr
источник

MM

Mikhail Matrosov in pro.cxx
это не рокет саенс, может быть и прожует полностью
источник

AZ

Alexander Zaitsev in pro.cxx
Ruben
ну я знаю про решения умными указателями и обычно их юзал, просто здесь лид против
так не используйте тогда умные указатели из std, если лид дурачок. напишите свои, которые также эффективны как голые указатели, только умеют в RAII
источник

AZ

Alexander Zaitsev in pro.cxx
или побоюсь спросить - может лиду и RAII не нравится из-за перфа?
источник

MM

Mikhail Matrosov in pro.cxx
Alexander Zaitsev
или побоюсь спросить - может лиду и RAII не нравится из-за перфа?
давай! набрасывай!
источник

MM

Mikhail Matrosov in pro.cxx
источник

IA

Igor Akhmetov in pro.cxx
Mikhail Matrosov
unique_ptr может работать медленнее при нормально оптимизации только на счёт того, что обязан занулить свой указатель при перемещении из него. но в случае копирования из объекта этого не избежать. тогда где я подставляюсь? ))
https://youtu.be/rHIkrotSwcc?t=1074 Если вкратце то 1) exception handling и 2) из-за ABI unique_ptr<int> соответствует int** а не int*, из-за чего приходится делать лишнее разыменование.
источник

R

Ruben in pro.cxx
значит задача не убить поинтеры деструктором. Если я вызову vect.push_back(tmp_obj), то деструктор временного объекта поубивает указатели. Поможет ли здесь реализация move конструктора и использование vect.push_back(std::move(tmp_obj))?
источник

AZ

Alexander Zaitsev in pro.cxx
Ruben
ну я знаю про решения умными указателями и обычно их юзал, просто здесь лид против
я бы таки очень точно взвесил, что вы не готовы мириться с теми накладными расходами, что дает unique_ptr (смотрите выше ссылки от Игоря). И если совсем невмоготу, то действительно напишите свои
источник

AZ

Alexander Zaitsev in pro.cxx
Ruben
значит задача не убить поинтеры деструктором. Если я вызову vect.push_back(tmp_obj), то деструктор временного объекта поубивает указатели. Поможет ли здесь реализация move конструктора и использование vect.push_back(std::move(tmp_obj))?
да, поможет
источник

R

Ruben in pro.cxx
ок, спс
источник

R

Ruben in pro.cxx
Alexander Zaitsev
я бы таки очень точно взвесил, что вы не готовы мириться с теми накладными расходами, что дает unique_ptr (смотрите выше ссылки от Игоря). И если совсем невмоготу, то действительно напишите свои
меня то убеждать в этом не надо, но у нас немножко авторитаризм в некоторых вещах. Лид очень хорошо разбирается в предметной области, но есть слегка неадекватный консерватизм в использовании плюсов
источник

AZ

Alexander Zaitsev in pro.cxx
Ruben
меня то убеждать в этом не надо, но у нас немножко авторитаризм в некоторых вещах. Лид очень хорошо разбирается в предметной области, но есть слегка неадекватный консерватизм в использовании плюсов
источник

AZ

Alexander Zaitsev in pro.cxx
рекомендую ему подсказать, что на Rust быстрее
источник

S

Stas in pro.cxx
Ruben
меня то убеждать в этом не надо, но у нас немножко авторитаризм в некоторых вещах. Лид очень хорошо разбирается в предметной области, но есть слегка неадекватный консерватизм в использовании плюсов
Показать бенчмарки?
источник

AZ

Alexander Zaitsev in pro.cxx
Stas
Показать бенчмарки?
нет, это бесполезно будет
источник

R

Ruben in pro.cxx
естественно, было предпринято множество попыток отстоять умные указатели
источник