Це питання з точки зору внутрішніх компіляторів.
Мене цікавлять дженерики, а не шаблони (C ++), тому я позначив це питання C #. Не Java, тому що AFAIK генерики в обох мовах відрізняються за реалізацією.
Коли я дивлюся на мови без дженерики, це досить просто, ви можете перевірити визначення класу, додати його до ієрархії, і все.
Але що робити з загальним класом, а ще важливіше, як обробляти посилання на нього? Як переконатися, що статичні поля є сингулярними за моментами (тобто щоразу вирішуються загальні параметри).
Скажімо, я бачу дзвінок:
var x = new Foo<Bar>();
Чи потрібно додати новий Foo_Bar
клас до ієрархії?
Оновлення: Поки що я знайшов лише 2 відповідні повідомлення, однак навіть вони не вникають у деталі в сенсі "як це зробити самостійно":