> -- Wlad писал(а):
> Так, что получается, что мы просто объявляем подобие "настраиваемой фабоики", генерирующей "законченные" типы. И, естественно, что хранить она будет их...

Вовсе не обязательно. Есть альтернативный подход к реализации generics на основе "итрефейсов". Не даром "IMCPG is an extension of IMCPI". Упрощенно суть в том, что для типов используемых в generics (генериках) создаются интерфейсы с набором операций - методов. Вызовы именно этих методов ОДНОКРАТНО компилирются в модуле где реализован генерик. При работе с "инстанцированным" типом происходит скрытое получение интерфейсов конкретных "клиентских" экземпляров, с проверкой типов на эпате компиляции использующего генерик модуля (т.е. исходный текст генерика не требуется). Если при этом интерфейсы "фиксированы" (т.е. набор используемях в генерике операций заранее оговорен) - они могут быть заранее созданы по одному для каждого типа.

Таким образом все компилируется ОДНОКРАТНО для каждого типа (а не для пары <генерик - тип>).

По этому принципу реализовано несколько эмуляций "STL"  для Delphi, естественно на основе интерфейсов.