Size: a a a

pro.graphon (and gamedev)

2020 March 23

PK

Pavel Kazakov in pro.graphon (and gamedev)
смотрю вот такой, например, код:
ASuperAсtor::ASuperAсtor()
{
   // ...
 if (auto awesomeSubobject = CreateEditorOnlyDefaultSubobject<USuperSubobject>("SuperSubobject"))
 {
   awesomeSubobject->x = x;
   awesomeSubobject->y = y;
 }
}

какая первая реакция? нафига тут в скоупе локальная переменная? ее ж ГЦ удалит! но нет, анрил такие сабобджекты копит в мешочек и реально кладет эктору
источник

d

disba1ancer in pro.graphon (and gamedev)
Pavel Kazakov
смотрю вот такой, например, код:
ASuperAсtor::ASuperAсtor()
{
   // ...
 if (auto awesomeSubobject = CreateEditorOnlyDefaultSubobject<USuperSubobject>("SuperSubobject"))
 {
   awesomeSubobject->x = x;
   awesomeSubobject->y = y;
 }
}

какая первая реакция? нафига тут в скоупе локальная переменная? ее ж ГЦ удалит! но нет, анрил такие сабобджекты копит в мешочек и реально кладет эктору
ГЦ?
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
реакция автора (сеньор по анрилу):
"главное, что работает :slightly_smiling_face:"
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
garbage collector
источник

d

disba1ancer in pro.graphon (and gamedev)
Pavel Kazakov
garbage collector
это я знаю, я удивлён что там ГЦ
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
кхм-кхм, его где только нет :|
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
да не, обычная фабрика с автоматической регистрацией
источник

d

disba1ancer in pro.graphon (and gamedev)
код вроде плюсовый, хотя стандарт не запрещает
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
disba1ancer
код вроде плюсовый, хотя стандарт не запрещает
здесь ничего про стандарт нет, это common sense
источник

d

disba1ancer in pro.graphon (and gamedev)
Alexander Busarov
да не, обычная фабрика с автоматической регистрацией
видимо товарищ и в плюсах слабоват
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
и в движке (в самом анриле) есть всего 1 пример такого же кода
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
CreateEditorOnlyDefaultSubobject наверняка возвращает не сам объект, а ссылку на объект
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
а, даже не ссылку, указатель
источник

U

UsernameAK in pro.graphon (and gamedev)
disba1ancer
код вроде плюсовый, хотя стандарт не запрещает
гц тоже стандарт не запрещает
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
видно же по ->
источник

d

disba1ancer in pro.graphon (and gamedev)
UsernameAK
гц тоже стандарт не запрещает
опоздал с тезисом
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
голый указатель в анриле не будет жить до конца программы -- это не new
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
его приберет ГЦ
источник

PK

Pavel Kazakov in pro.graphon (and gamedev)
не сразу, но приберет
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Pavel Kazakov
голый указатель в анриле не будет жить до конца программы -- это не new
я знаю только, что если ты вызывал CreateEditorOnlyDefaultSubobject и тебе вернули сырой указатель, то удалять его через delete ты не имеешь права
источник