Создать общую библиотеку.Он поддерживает карту от искаженного имени типа до индекса.
Назовите это int64_t get_type_integer( std::type_index )
.Экспортируйте его, сделайте его потокобезопасным и т. Д.
Не вызывайте его.
Вместо этого вызовите
template<typename T>
int64_t getTypeId() {
static int64_t type = details::get_type_integer(typeid(T));
return type;
}
, теперь у каждого есть свой тип, который использует магическую статику длядоступа / INIT;get type integer вызывается только один раз для .so для каждого типа.Таким образом, код может быть написан безопасным, а не сверхбыстрым.
Используйте имена, а не type_index
напрямую, потому что один и тот же тип в двух системах во многих системах может рассматриваться как разные типы, но может иметь один и тот же искаженный типимя.