To pytanie z perspektywy wewnętrznych kompilatorów.
Interesują mnie generyczne, a nie szablony (C ++), więc zaznaczyłem pytanie C #. Nie Java, ponieważ AFAIK generyczne w obu językach różnią się implementacjami.
Kiedy patrzę na języki bez generyków, jest to dość proste, możesz zweryfikować definicję klasy, dodać ją do hierarchii i to wszystko.
Ale co zrobić z klasą ogólną, a co ważniejsze, jak obsługiwać odniesienia do niej? Jak upewnić się, że pola statyczne są osobne dla poszczególnych instancji (tj. Za każdym razem, gdy rozstrzygane są parametry ogólne).
Powiedzmy, że widzę połączenie:
var x = new Foo<Bar>();
Czy dodam nową Foo_Bar
klasę do hierarchii?
Aktualizacja: do tej pory znalazłem tylko 2 odpowiednie posty, ale nawet one nie zawierają zbyt wielu szczegółów w sensie „jak to zrobić samodzielnie”: