Andrei Alexandrescu escribe en Modern C++ Design:¿Cuándo puede typeid devolver diferentes instancias de type_info para el mismo tipo?
Los objetos devueltos por
typeid
tener almacenamiento estático, por lo que no tiene que preocuparse por problemas de de toda la vida.
Andrei sigue:
La norma no garantiza que cada invocación de, por ejemplo,
typeid(int)
devuelve una referencia a la mismatype_info
objeto.
Aunque el estándar no lo garantiza, ¿cómo se implementa esto en compiladores comunes, como GCC y Visual Studio?
Suponiendo que typeid
no tiene fugas (y devuelve una nueva instancia en cada llamada), ¿es una "tabla" por aplicación, por unidad de traducción, por dll/so, o algo completamente diferente?
¿Hay momentos en que &typeid(T) != &typeid(T)
?
Estoy interesado principalmente en compiladores para Windows, pero también se agradece cualquier información para Linux y otras plataformas.
Una razón importante para este nivel de libertad fue la preocupación por las DLL. – MSalters