Added POD serialization

This commit is contained in:
Hamish Milne 2019-08-06 17:45:06 +01:00 committed by zhupengfei
parent 6940c99ed6
commit dc04774ece
8 changed files with 68 additions and 20 deletions

View file

@ -84,6 +84,7 @@ add_library(common STATIC
misc.cpp
param_package.cpp
param_package.h
pod.h
quaternion.h
ring_buffer.h
scm_rev.cpp

20
src/common/pod.h Normal file
View file

@ -0,0 +1,20 @@
#include "boost/serialization/split_member.hpp"
#define SERIALIZE_AS_POD \
private: \
friend class boost::serialization::access; \
template<typename Archive> \
void save(Archive & ar, const unsigned int file_version) const { \
ar.save_binary(this, sizeof(*this)); \
} \
template<typename Archive> \
void load(Archive & ar, const unsigned int file_version) { \
ar.load_binary(this, sizeof(*this)); \
} \
template<class Archive> \
void serialize( \
Archive &ar, \
const unsigned int file_version \
){ \
boost::serialization::split_member(ar, *this, file_version); \
}