使用预处理的方法生成自定义结构体的序列化和反序列化代码
支持基础类型、std容器、复杂嵌套结构体,派生类
tip:文章结尾有代码链接,需要的小伙伴自行提取,记得帮博主点点赞喔,谢谢大家。
- include文件夹为自定义的结构体的头文件目录。
- nlohmann文件夹为开源nlohmann josn文件。
- serialize文件夹为注册结构体文件。
- struct_testserialize.h:自定义类型结构体头文件,注意事项成员变量需要以"_"开头,若是gcc编译器则不需要,这是因为使用msvc编译器时会出现Pasting formed '._age', an invalid preprocessing token问题,有兴趣的小伙伴可以查阅相关资料。
TestSerialize.h:声明注册是所需声明函数。
TestSerialize.cpp:自定义类型序列化注册
main.cpp:对注册后的自定义类进行使用的demo,包括序列化和反序列化
目前支持变量个数为27(博主手cv麻了),若需扩展变量个数请自行在CComSerializeTool.h文件77-80行中进行扩展,有不明白的问题可以私下博主,谢谢大家。
在此由衷感谢Niels Lohmann和我的前同事兼好友胡工,胡工在我的创作中提出了很多宝贵的建设性意见。
源码链接:https://gitee.com/lu-xiangyang857/CComSerializeTool
nlohmann json链接:json/include at develop · nlohmann/json