枚举 class 并提升序列化

enum class and boost serialization

我如何 serialize/deserialize 具有 enum class 成员的 class 使用 boost 序列化。示例:

enum class enum_class{
    item1=0,item2=1
}

class foo{
private:
    friend class boost::serialization::access;
public:
    foo() = default;
    ~foo() = default;
    template<class Archive> inline void serialize(Archive & ar, const unsigned int version){
        ar & a;
        ar & b;
    }
    enum_class a;
    int b;
};

我无法使 enum_class 可序列化,因为它不接受 friendmember functions。解决方案是什么?

您需要使枚举 class 可序列化。

有关说明,请参阅 tutotial, non-intrusive version