Size: a a a

2021 February 26

DP

Denis Paukaev in supapro.cxx
Если не надо хранить это в контейнере то достаточно crtp который затребует Draw
источник

AF

Aidar Fattakhov in supapro.cxx
Roy Mustang
Не, давайте не будем холивар разводить, я спросил про std::unique_ptr<void> и почему так не делают?
потомучто есть any
источник

RM

Roy Mustang in supapro.cxx
Aidar Fattakhov
потомучто есть any
Понял, пойду почитаю про плюсы и минусы any
источник

DP

Denis Paukaev in supapro.cxx
Если надо то можно обычный дин. полиформизм
источник

AF

Aidar Fattakhov in supapro.cxx
Roy Mustang
Понял, пойду почитаю про плюсы и минусы any
вобще продолбать тип обычно плохо
источник

AF

Aidar Fattakhov in supapro.cxx
у тебя нет способов его восстановить
источник

RM

Roy Mustang in supapro.cxx
Aidar Fattakhov
вобще продолбать тип обычно плохо
продолбать? в смысле?
источник

CD

Constantine Drozdov in supapro.cxx
Denis Paukaev
Если не надо хранить это в контейнере то достаточно crtp который затребует Draw
std::variant велосипедишь :)
источник

AF

Aidar Fattakhov in supapro.cxx
ну ты его продолбал в тот момент когда указатель в void* скастанул
источник

RM

Roy Mustang in supapro.cxx
Aidar Fattakhov
ну ты его продолбал в тот момент когда указатель в void* скастанул
Мы же его не продолбываем, юзер же знает о типе, он же его в тайпнейм передает, а ты уже из его типа получаешь хэш и исходя из хэша можешь последовательные индексы сгенерировать и кэшировать их в структуре
источник

CD

Constantine Drozdov in supapro.cxx
Aidar Fattakhov
у тебя нет способов его восстановить
есть, конечно, у него рядом енум из всех типов в программе
источник

RM

Roy Mustang in supapro.cxx
в EnTT проглядел эту фишку
источник

RM

Roy Mustang in supapro.cxx
Правда там она чуть иначе работала, но смысл тот же был
источник

CD

Constantine Drozdov in supapro.cxx
Aidar Fattakhov
ну ты его продолбал в тот момент когда указатель в void* скастанул
struct my_polymorpic_object_base {
  uintptr_t typeid; //это не VTBL это ДРУГОЕ
};
источник

RM

Roy Mustang in supapro.cxx
Constantine Drozdov
есть, конечно, у него рядом енум из всех типов в программе
Я думаю, речь идет о том, что ты не можешь знать типы этих объектов, пока не получишь либо аргумент енама, либо тип в тайпнейм, короче, что-то вроде ключа, который идентифицирует тип
источник

RM

Roy Mustang in supapro.cxx
Ну слушайте, не похоже, что реализация std::any кушаеть производительность, тупо касты, аллокация и пару if'ов
источник

RM

Roy Mustang in supapro.cxx
Думаю, можно  кушать
источник

AF

Aidar Fattakhov in supapro.cxx
Roy Mustang
Мы же его не продолбываем, юзер же знает о типе, он же его в тайпнейм передает, а ты уже из его типа получаешь хэш и исходя из хэша можешь последовательные индексы сгенерировать и кэшировать их в структуре
нет юзер не знает о типе
источник

AF

Aidar Fattakhov in supapro.cxx
это же массив
источник

CD

Constantine Drozdov in supapro.cxx
Roy Mustang
Я думаю, речь идет о том, что ты не можешь знать типы этих объектов, пока не получишь либо аргумент енама, либо тип в тайпнейм, короче, что-то вроде ключа, который идентифицирует тип
Я думаю, что vtbl является отличным идентификатором типа, именно так работает RTTI
источник