【发布时间】:2013-07-16 09:23:55
【问题描述】:
在使用共享指针的 boost tutorial and example 中,它们有一个 A 类,它们创建了一个指向 A 类对象的共享指针:
boost::shared_ptr<A> spa(new A);
然后他们将其序列化:
std::ofstream ofs(filename.c_str());
boost::archive::text_oarchive oa(ofs);
oa << spa;
那么为什么A这个类必须要有这个功能呢?
void serialize(Archive & ar, const unsigned int /* file_version */);
我想使用共享指针的原因是为了避免为我的一些复杂类定义这个函数。目前我没有使用共享指针,我使用的是真正的指针,我实际上是在序列化指针指向的地址。
【问题讨论】:
-
序列化库怎么知道,如何序列化
A类型的对象?有人需要告诉它怎么做,这是 Boost.Serialization 处理这个问题的(一种)方式。 -
但是我不想序列化A,我想序列化地址..
-
+1 这是一个有用的问题
-
@yonigo 我可能仍然不明白,但为此您不需要复杂的序列化库。序列化指针(地址)的值有什么用?
标签: c++ serialization boost shared-ptr