I've begun writing a short C++ program to take a normal header file like so:
struct Monkey {
int a;
float b;
char c[5];
};
and turn it into:
typedef char char_5[5];
struct Monkey {
BEGIN_VISITABLES(Monkey);
VISITABLE(int, a);
VISITABLE(float, b);
VISITABLE(char_5, c);
END_VISITABLES;
};
I can show you what I have so far.