Template Struct Serializable

Struct Documentation

template<typename T>
struct Serializable

Non-intrusive serialization customization point.

Specialize this template to enable serialization for types you don’t control. The specialization must provide static serialize() and deserialize() functions.

Example:

// For a third-party type you can't modify:
template <>
struct SerializableType<ThirdPartyPacket> {
    static void serialize(const ThirdPartyPacket& obj, Serializer& s) {
        s.add_value(obj.getId());
        s.add_value(obj.getData());
    }
    static ThirdPartyPacket deserialize(Deserializer& d) {
        size_t id;
        std::string data;
        d.get_value(id);
        d.get_value(data);
        return ThirdPartyPacket(id, data);
    }
};

Template Parameters:

T – The type to provide serialization support for