2010-07-07 65 views
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; 
} 

此代碼根本不可編譯,但包含在內,可以讓您瞭解我的程序結構。

回答

相關問題