1
我遇到了一個問題,我試圖序列化一個模板類的消息。該模板的類消息是BaseClass類型的,但我希望它可以序列化該類的派生版本。截至目前,它只是序列化BaseClass。我應該如何註冊boost :: serialization我想要它序列化的派生類的類型?我已經嘗試了幾種方法,例如使用'BOOST_CLASS_EXPORT'宏。我也嘗試使用這個例子:如何在模板類中使用boost序列化註冊類型?
ar.register_type(static_cast<bus_stop_corner *>(NULL));
從這裏:http://www.boost.org/doc/libs/1_36_0/libs/serialization/example/demo_gps.hpp但仍然沒有運氣。
template <class T>
class Frame{
...
private:
T message;
};
class BaseType{};
class SubTypeA : public BaseType{};
class SubTypeB : public BaseType{};
int main(){
std::vector< Frame<BaseType> > myFrames;
//add a bunch of Frame<SubTypeA> and Frame<SubTypeB> objects to the myFrames vector.
//serialize the vector.
return 0;
}
此代碼根本不可編譯,但包含在內,可以讓您瞭解我的程序結構。