Andrei Alexandrescu scrive in Modern C++ Design:Quando typeid può restituire diverse istanze type_info per lo stesso tipo?
Gli oggetti restituiti da
typeid
avere stoccaggio statico, in modo da non dover preoccuparsi di problemi di vita.
Andrei continua:
Lo standard non garantisce che ogni invocazione di, diciamo,
typeid(int)
restituisce un riferimento allo stessotype_info
oggetto.
Anche se lo standard non lo garantisce, come viene implementato in compilatori comuni, come GCC e Visual Studio?
Supponendo typeid
non perde (e restituire una nuova istanza ogni chiamata), è uno "tavolo" per applicazione, per ogni unità di traduzione, per dll/così, o qualcosa di completamente diverso?
Ci sono tempi in cui &typeid(T) != &typeid(T)
?
Sono principalmente interessato ai compilatori per Windows, ma qualsiasi informazione per Linux e altre piattaforme è anche apprezzata.
Una ragione importante per questo livello di libertà era effettivamente la preoccupazione per le DLL. – MSalters