Я так понимаю хочется получить у каждого поля его порядок и тип?
Как-то пробегал такой трюк.
Не могу найти , думаю подскажут здесь.
Суть в том, чтобы создать вариадик с разным количеством пока не скомпилируется и так мы получаем сколько у нас есть полей и из типы.
Или нужно также привязать к имени?
Тогда тут сложно ведь &A::x это не абсолютное смещение да и указатель такой может быть в размере как два или даже три указателя при наличии виртуального и множественного наследования.