На каких платформах type_info::op== не сравнивает строки?
От: Abyx Россия  
Дата: 11.04.18 12:27
Оценка:
В libstdc++ и libc++ type_info::operator== реализован через дефайн:

#if _PLATFORM_SUPPORTS_UNIQUE_TYPEINFO
    bool operator==(const type_info& __rhs) const {
      return __mangled_name == __rhs.__mangled_name;
    }
#else
    bool operator==(const type_info& __rhs) const {
      return __mangled_name == __rhs.__mangled_name ||
             strcmp(__mangled_name, __rhs.__mangled_name) == 0;
    }
#endif


Т.е. есть какие-то платформы, где либо нет .so вообще,
либо гарантируется что при загрузке .so, динамическая линковка объединит данные RTTI.

Что это за платформы?

(если кому нужна карма на SO — дублируйте ответ сюда)
In Zen We Trust
rtti
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.