Size: a a a

cxx.Дискуссионная

2020 March 25

O

Ofee in cxx.Дискуссионная
Не забудь, что в коде не только std::unordered_map<> может придти, но и std::unordered_map<>&, std::unordered_map<>&&, std::unordered_map<> const...
источник

RM

Roy Mustang in cxx.Дискуссионная
Он принимает только сам объект
источник

RM

Roy Mustang in cxx.Дискуссионная
Да мне для robin_hood::unordered_flat_map
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Не хочет работать
decltype()
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Не хочет работать
И вообще, ты разве не всегда знаешь тип?
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
И вообще, ты разве не всегда знаешь тип?
Сложно сказать, дело в том, что объекты классов что я помещаю в EnTT хранятся как компоненты, я получается запрашивают по T (по классу) компонент и он мне возвращает сам объект класса по ссылке
источник

RM

Roy Mustang in cxx.Дискуссионная
Дальше я хочу проверить, является ли в объекте этого класса член base типов unordered_map
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Сложно сказать, дело в том, что объекты классов что я помещаю в EnTT хранятся как компоненты, я получается запрашивают по T (по классу) компонент и он мне возвращает сам объект класса по ссылке
Но ведь объект по ссылке всегда одного типа, содержимое тогда тоже...
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
Но ведь объект по ссылке всегда одного типа, содержимое тогда тоже...
Вот в robin_hood можно как я выше код присылал, проверять по ::is_flat
источник

RM

Roy Mustang in cxx.Дискуссионная
По сути компилятор заранее должен ругнуться если я пытаюсь запросить объект в котором нету этого base
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Вот в robin_hood можно как я выше код присылал, проверять по ::is_flat
Я пока что в твоём коде вижу тип, известный и без проверки. Там используется type erasure?
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
Я пока что в твоём коде вижу тип, известный и без проверки. Там используется type erasure?
Даже не в курсе про type erasure
источник

RM

Roy Mustang in cxx.Дискуссионная
Вроде в EnTT почти все constexpr
источник

RM

Roy Mustang in cxx.Дискуссионная
И оно на препроцессоре определяет есть ли этот член в объекте класса или нет
источник

O

Ofee in cxx.Дискуссионная
У тебя robj всегда типа CServerConfig. Как тип base может вдруг измениться?
источник

RM

Roy Mustang in cxx.Дискуссионная
Ofee
У тебя robj всегда типа CServerConfig. Как тип base может вдруг измениться?
Нет, это в данном примере он такой
источник

RM

Roy Mustang in cxx.Дискуссионная
А так там много типов
источник

RM

Roy Mustang in cxx.Дискуссионная
Я планировал для конфигов делать структуру
источник

RM

Roy Mustang in cxx.Дискуссионная
а внутри нее либо лежит объект указывающий на другую структуру где описаны типы данных, либо unordered_flat_map<uint32_t, структура> base
источник

O

Ofee in cxx.Дискуссионная
Roy Mustang
Нет, это в данном примере он такой
Тогда мой пример тебе подходит
источник