序列化宏
DATA_IO_LOAD_SAVE(Class,Members) | 在类定义内调用,无版本,可以优化 |
DATA_IO_LOAD_SAVE_E(Class, Members) | 在类定义外调用,无版本,可以优化 |
DATA_IO_LOAD_SAVE_V(Class, CurrentVersion, Members) | 在类定义内调用,有版本,不可优化 |
DATA_IO_LOAD_SAVE_EV(Class, CurrentVersion, Members) | 在类定义外调用,有版本,不可优化 |
DATA_IO_DUMP_RAW_MEM(Class) | 序列化就是直接dump的类,不需要转字节序,可优化 |
DATA_IO_DISABLE_LOAD_SAVE(Class) | 不可序列化,引发任何误用下的编译错误 |
DataIO_IsDump_TypeTrue1(Class) | 可dump的类,但可能需要转字节序,和DATA_IO_LOAD_SAVE[XXX]配合使用,用该宏声明后可以内嵌在其他类中并正确优化,必须位于namespace febird中 |
参数:
Class | 类/结构名 |
CurrentVersion | 整数文字常量,或者宏定义的常量,如:1,2,3 不可是用const int ver = 2;中的ver,这是为了将来可能的parse并序列化文本 |
Members | 形如 &a&b&c;a,b,c是Class的成员 如果使用带版本的宏可以使用:vmg.since(ver, m) 表示从ver版本开始增加了成员m |