Boost序列化void指针中保存的二进制数据

时间:2018-02-01 14:31:05

标签: c++ serialization boost

我有一个类' SpecificTaskResults',抽象基类的孩子' TaskResults',它拥有一大块由其他类生成的数据

' SpecificTaskResults'保存一些数据的向量,例如std :: vector; ' TaskResults'在数据的开头和它的长度上保持空白*。

class TaskResults
{
    public:
        void* _data;
        size_t _dataLength;

    private:
        void SetData(void* memAddr, size_t len)
        {
            _data = memAddr;
            _dataLength = len;
        }
}


class SpecificTaskResults : public TaskResults
{
    public:
        std::vector<float> _specificData;

        GiveData(std::vector<float> computedData)
        {
             _specificData = std::move(computedData);
             SetData(&_specificData[0], _specificData.size());
        }
}

基类的主要目的是能够以二进制格式保存数据,即使基本库不知道数据的确切含义。

现在我需要使用Boost :: Serialize序列化此类以将其传递给MPI,如何正确地序列化基类和派生类中的指针?

0 个答案:

没有答案