1
我是C++的新手,我如何序列化具有共享指針和模板的結構。 以下是示例代碼。使用共享指針和模板的boost系列化
#pragma once
#include <boost/serialization/access.hpp>
#include <boost\serialization\string.hpp>
#include <boost\serialization\shared_ptr.hpp>
//Mydata.hpp file
namespace mydata
{
struct MyData
{
std::string name;
std::string type;
std::shared_ptr<MyInfo> myref;
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive &ar, const unsigned int vs)
{
ar & name;
ar & type;
ar & myref;
}
}
}
現在我該如何在相應的Mydata.cpp文件中實現共享指針?
上面的代碼做我需要實現它Mydata.cpp文件 – sia
[模板定義總是走到標題](http://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file/495056#495056)。否則,這是你的選擇。如果你不想在那裏使用序列化邏輯,你可以看看[non-intrusive serialization adaption](http://www.boost.org/doc/libs/1_55_0/libs/serialization/doc/tutorial.html# nonintrusiveversion),它不需要你添加成員到現有的(公共或第三方)類 – sehe