Size: a a a

2021 July 08

/

/bin/cat in supapro.cxx
он выделает память?
источник

VS

Vlad Serebrennikov in supapro.cxx
вы его через placement new создаете?
источник

VS

Vlad Serebrennikov in supapro.cxx
если нет, то вам не нужно вызывать деструктор руками
источник

/

/bin/cat in supapro.cxx
На стеке
источник

/

/bin/cat in supapro.cxx
auto obj = Obj(args)
источник

/

/bin/cat in supapro.cxx
мне нужно забыть про владение и удалить объект (dtor)
источник

VS

Vlad Serebrennikov in supapro.cxx
чего вы хотите добиться вызовом деструктора?
источник

/

/bin/cat in supapro.cxx
ресурс не нужен, можно его удалить
источник

VS

Vlad Serebrennikov in supapro.cxx
забудьте и дождитесь, пока поток управления выйдет за пределы scope, где вы объект создаете
источник

/

/bin/cat in supapro.cxx
Мне его нужно удалить до выхода из области видимости
источник

/

/bin/cat in supapro.cxx
и не вызывать dtor 2 раза
источник

VS

Vlad Serebrennikov in supapro.cxx
если вам действительно это надо, уменьшите область видимости, создав новую при помощи {}
источник

VS

Vlad Serebrennikov in supapro.cxx
block scope называется
источник

/

/bin/cat in supapro.cxx
А можно ли мувнуть объект в эту область видимости и сказать, что он заимствован? По крайне мере это работает в rust
источник

VS

Vlad Serebrennikov in supapro.cxx
компилятор в любом случае вызовет деструктор такой переменной при выходе за область видимости
источник

VS

Vlad Serebrennikov in supapro.cxx
можно создать новый объект в маленькой области видимости, переместив в него объект из большой области видимости
auto new_obj{std::move(obj)};
если у вашего объекта есть конструктор перемещения
источник

ip

illya palkin in supapro.cxx
Явно деструктор нужно вызывать только если вы создали объект через placement new. Например когда работаете с std::aligned_storage.
Если хотите удалить его в середине скоупа - используйте std::unique_ptr::reset() .
источник

ip

illya palkin in supapro.cxx
Что за задача такая ?
источник

SS

Sergey Skvortsov in supapro.cxx
Первое утверждение не совсем верно
источник

/

/bin/cat in supapro.cxx
удалить объект раньше времени
источник