Uh, thanks for the help, Remi and Stefan.
I could actually implement what I wanted using your tips. So, in my
library, I can serialize any class given a "description" of it.
Something like this:
class A
{
int m1;
char *m2;
}
typedef make_traits
//A is now serializable. The CString class
//is a modifier to treat the second field
//as a c string
A x
A y
stream << pack(x)
stream >> unpack(y)
//Now x is equal to y
class B
{
unsigned int m1;
A *m2;
}
typedef make_traits
//B is now serializable. The NewPtr modifier
//says that the m2 should be treated as a C++ class
//pointer
This is rather cool and impressive. Using your tips I could go further,
so it was not needed anymore to specify the members in the correct
order, nor all of them.
But in the end I found it quite ugly. So I decided to go through a
another way, easier for the user and with a cleaner syntax, but not so
"hardcore". But your ideas are great, and probably have a good use. So,
thanks for the help.
[]s
Davi de Castro Reis