Questa è la domanda dal punto di vista del compilatore internals.
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 i generici è piuttosto semplice, puoi convalidare la definizione della classe, aggiungerla alla gerarchia e il gioco è fatto.
Ma cosa fare con la classe generica e, ancora più importante, come gestirne i riferimenti? Come assicurarsi che i campi statici siano singolari per istanze (ad esempio ogni volta che vengono risolti i parametri generici).
Diciamo che vedo una chiamata:
var x = new Foo<Bar>();
Aggiungo la nuova Foo_Bar
class alla gerarchia?
Aggiornamento: Finora ho trovato solo 2 post pertinenti, tuttavia anche loro non entrano in molti dettagli nel senso "come farlo da soli":