> -- Ivor писал(а):
> В принципе во "вспомогательные" процедуры можно скрыто передавать размер элемента.
Зачем? В виртуальные методы вы только указатель на объект передаёте...

> -- Ivor писал(а):
> Можно ничего не хранить. Тэг типа у всех экземпляров одного дженерика одинаковый, но в дополнительном поле указывать тэги всех его параметров.
Тэг типа у обектов-экземпляров конкретизированных генериков НЕ МОЖЕТ БЫТЬ ОДИНАКОВЫМ.

1)FixedArray<ItemType,CONST N:INTEGER> - это один тип
2)FixedArray<INTEGER,15> - другой
3)FixedArray<INTEGER,16> - третий
4)FixedArray<REAL,16> - третий

Это – РАЗНЫЕ ТИПЫ. Более того, как такового, типа FixedArray<ItemType,CONST N:INTEGER> в системе для программиста НЕ СУЩЕСТВУЕТ НИ ПОД КАКИМ ВИДОМ! Он - «недоделанный» ( с «недоделанными» «вспомогательными» процедурами обращения к элементам ). А вот 2) – 4) - «готовые к употреблению», со всеми «заполнеными» полями ссылок на «вспомогательные» процедуры.

Кстати – да, «незаполненные» ссылки в некоей таблице ( той же vtbl ) как раз могут быть заполнены в «конкретизированных» «потомках».

С «конкретизацией» константы в объявлении типа надо подумать. Может это просто - возвращение числа-размера из некоего вспомогательного кода при размещении экземпляра коллекции? (и становится не важно, КУДА это возвращается: то ли в код динамического размещения в куче, то ли выделения места на стеке для статических объектов...  :о) )

«Теплее, однако-сь!»
Всем – спасибо за участие в обсуждении!