将文件中的数据读入struct

时间:2016-02-09 02:07:54

标签: c++ file struct

我有一个结构:

struct MyStruct
{
    uint16_t num_attributes;
    std::vector<attribute> attributes; //size of num_attributes
    uint16_t num_methods;
    std::vector<method> methods; //size of num_methods
    ...
}

我目前一次只读一个成员,只是硬编码。这意味着如果我将来对结构进行更改,我将不得不彻底检查该代码。

有没有更好的方法可以自动将数据读入结构中?

1 个答案:

答案 0 :(得分:0)

简答:没有

答案很长: 自动执行序列化需要语言支持内省,以便序列化库可以查看序列化所需的结构。 C ++不支持内省。

有一些序列化库可以为您自动执行某些过程。但是,它们都要求您仍然列出每个结构成员。

例如,像Boost Serialization这样的库只会让您添加代码来序列化每个成员。该库处理递归,编写集合,版本控制等。这些好处确实增加了,尤其是版本控制方面。