Здравствуйте, Seigram, Вы писали:
S>Я бы иначе написал это и думаю угодил бы запросу szag.
S>Собственно сообразить как компилятор и что размещает не сложно зная типы полей
В момент итерирования типы полей неизвестны. Поля представлены интерфейсом IORMField*, у которого есть GetSize().
По одному только размеру судить о выравнивании сложно: char[8], int[2] и double имеют одинаковый размер и разное выравнивание

Поэтому придётся добавить в интерфейс GetAlign().
Ну а дальше — в реализациях — операторы sizeof и __alignof (или его рукодельная замена, не суть).