Есть ли способ получить фактический размер экземпляра класса в Delphi?
Я знаю о методе InstanceSize класса TObject, но этот метод не рекурсивно вызывает себя для членов объекта. Например, допустим, что у нас есть два класса:
type MyClass1 = class
private
myVar1 : integer;
myVar2 : integer;
end;
type MyClass2 = class
private
myOtherVar1 : integer;
myOtherVar2 : MyClass1;
end;
для этого сегмента кода, MyClass1 будет иметь длину 12 байт (4 байта для каждого целого плюс 4 для служебных данных класса), а MyClass2 будет 24 байта lengh (4 байта для служебных данных класса, 12 байтов из myOtherVar2 и еще 4 для myOtherVar1 integer). Использование InstanceSize приведет к 12 байтам для каждого из них, поскольку myOtherVar2 интерпретируется как указатель (4 байта) вместо ссылки на класс.
Есть ли способ получить общий размер класса, включая его ссылку на другие экземпляры класса?