eis/mix_cc/serialize/serialize.h

33 lines
772 B
C++

/**
* @file mix_cc/serialize/serialize.h
* @brief 序列化
* @author Cat (null.null.null@qq.com)
* @version 0.1
* @date 2021-06-18
*
* Company: Baosight Co. Ltd.
* DO NOT COPY/USE WITHOUT PERMISSION
*
*/
#pragma once
#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/vector.hpp>
#include <sstream>
#include <string>
namespace mix_cc {
/**
* @brief 反序列化的对象一定要确保带有空参构造函数,这是一个线程安全的版本
* @tparam Tp
* @param data My Param doc
* @return std::string
*/
template <typename Tp>
std::string serialize(Tp data) {
std::ostringstream oss;
boost::archive::text_oarchive oa(oss);
boost::serialization::save(oa, data, 0);
return oss.str();
}
} // namespace mix_cc