Поле TTypeData, содержащее RTTI для разных типов данных, имеет три разных значения типа элемента для динамического массива:
elType: PPTypeInfo; // nil if type does not require cleanup
elType2: PPTypeInfo; // independent of cleanup
DynArrElType: PPTypeInfo; // actual element type, even if dynamic array
Назначение elType
довольно ясно: оно используется FinalizeArray
в RTL и оставлено nil, если нечего дорабатывать. Но затем у нас есть два других элемента, elType2
и DynArrElType
. Кто-нибудь знает, почему их два и в чем разница между ними?
DynArrElType: PPTypeInfo;
появляется закомментированным в Delphi XE и XE2, а в старых версиях, таких как Delphi 7 - 2007, даже не появляется. Какую версию делфи вы используете? - person RRUZ   schedule 03.12.2011elType
поле. Если вам нужны ответы только от знающих людей, направляйте свои вопросы напрямую Аллену Бауэру и другим членам команд разработчиков IDE/компиляторов. - person Remy Lebeau   schedule 03.12.2011GetDynArrayElType
в Rtti.pas. Кажется очевидным, чтоDynArrElType
был добавлен в D2010 для поддержки расширенной системы RTTI. Пытаюсь понять, чем он отличается отelType2
, который уже был. - person Mason Wheeler   schedule 03.12.2011