【发布时间】:2014-06-24 02:08:45
【问题描述】:
我正在尝试序列化 boost::chrono::time_point tp 类型的结构中的成员,但给出错误序列化不是 boost::chrono::time_point 的成员,下面是我的代码:
struct myTimestamp
{
boost::chrono::time_point<boost::chrono::high_resolution_clock> begin1;
boost::chrono::time_point<boost::chrono::high_resolution_clock> end1;
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int version)
{
ar & begin1;
ar & end1;
}
public:
myTimestamp();
virtual ~myTimestamp();
};
我已包含所有必需的头文件,但问题仍然存在。
我什至在序列化方法中尝试了以下选项.. 还是一样
ar & boost::serialization::make_binary_object(&begin1, sizeof(begin1)); ar & boost::serialization::make_binary_object(&end1, sizeof(end1));
【问题讨论】:
-
不是
boost::chrono::time_point吗? -
@user2079303 - 是的,它是 boost::chrono::time_point
-
@user2079303 您的回答很好地提示了如何解决这个问题。可悲的是,我还没有找到描述这一点的其他答案。有时间我会写点东西的
-
@sehe,比我的回答要好一点(可重复使用)是为
time_point<high_resolution_clock>定义一个免费的serialize函数,但我不知道如何访问@ 的左值987654326@ 内部实现它。 -
我也在尝试查看 time_point -- boost.org/doc/libs/1_55_0/doc/html/chrono/…
标签: c++ serialization boost boost-serialization