Secondo cplusplus.com, la funzione std::type_info::before()
...A cosa serve `tipo_info :: before`?
Restituisce vero se il tipo precede il tipo di RHS nell'ordine collazione.
L'ordine di confronto è solo un ordine interno mantenuto da una particolare implementazione e non è necessariamente correlato ai rapporti di eredità o all'ordine di dichiarazione.
Quindi, a cosa serve?
"* Il' type_info' non ha un 'operatore <' definito, quindi è necessario fornire il proprio comparatore. * "' Std :: less <> '(' std :: map <> 'predefinito comparatore) funziona per ** tutti ** i puntatori, si ottiene semplicemente l'ordinamento dell'indirizzo anziché l'ordinamento di collation. – ildjarn
@ildjarn: hai frainteso il problema. Lo standard non garantisce che al massimo esista un 'type_info' per tipo. Infatti è comune incontrare * più di un 'typeinfo' * creato per lo stesso tipo. Il caso più banale è nel contesto di librerie con collegamenti dinamici, come ha detto Dietmar. – ybungalobill
@ildjarn Rileggere il tuo preventivo. Parla di 'operator <' di 'type_info', ma si discute sulla validità del confronto dei puntatori a' type_info', il che implica che la frase citata è in qualche modo sbagliata. Ma non lo è, perché non ho detto nulla sul confronto dei puntatori. Allora perché la gente scrive commenti irrilevanti? – ybungalobill