Questa è la domanda dal punto di vista degli interni del compilatore.
Sono interessato ai generici, non ai modelli (C ++), quindi ho contrassegnato la domanda con C #. Non Java, perché AFAIK i generici in entrambe le lingue differiscono nelle implementazioni.
Quando guardo le lingue senza generici è abbastanza semplice, puoi convalidare la definizione della classe, aggiungerla alla gerarchia e il gioco è fatto.
Ma cosa fare con la classe generica e, soprattutto, come gestire i riferimenti ad essa? Come assicurarsi che i campi statici siano singolari per istanze (cioè ogni volta che vengono risolti parametri generici).
Diciamo che vedo una chiamata:
var x = new Foo<Bar>();
Aggiungo una nuova Foo_Bar
classe alla gerarchia?
Aggiornamento: finora ho trovato solo 2 post pertinenti, anche se non entrano in molti dettagli in senso "come farlo da soli":