c++boostc++20boost-serialization

Can I skip some variables in boost serialization?


I have Players class and it has some variables

class Players
{
private:
    friend class boost::serialization::access;
    template <class Ar>
    void serialize(Ar &ar, unsigned)
    {
        ar &username &password;
    }

public:
    std::string username = "", password = "", email = "";
};

I just want to serialize username and password. I dont want to add email too. I'm getting error after trying to deserialize it.


Solution

  • Your code seems correct. Remember that you cannot deserialize an archive that you created with an old version of the serialization routines.

    If that is the case, as a very primitive workaround you can do this below, or learn how to deal with archive versions.

        template <class Ar>
        void serialize(Ar &ar, unsigned)
        {
            std::string dummy_email = "";
            ar &username &password & dummy_email;
        }