boost::serialization object-tracking und Versionsmanagement für einzelne Archive abschalten



  • Hallo,

    ist es möglich Object-tracking und Versions-Management vereinzelt in einem
    boost::serialization Archiv abzuschalten? Genau genommen möchte ich einen Vector von Objekten als Text serialisieren, allerdings ohne Versionsnummern, etc.

    Natürlich könnte man es so machen:

    // elminate serialization overhead at the cost of
    // never being able to increase the version.
    BOOST_CLASS_IMPLEMENTATION(std::vector<foo>, boost::serialization::object_serializable);
    
    // eliminate object tracking (even if serialized through a pointer)
    // at the risk of a programming error creating duplicate objects.
    BOOST_CLASS_TRACKING(std::vector<foo>, boost::serialization::track_never)
    

    ...aber das kommt mir dann doch etwas rabiat vor 😉

    Ich hatte die Hoffnung, da was mit den Archiv flags machen zu können, aber es scheint, als würde mir das nicht helfen.

    enum archive_flags {
        no_header = 1,          // suppress archive header info
        no_codecvt = 2,         // suppress alteration of codecvt facet
        no_xml_tag_checking = 4 // suppress checking of xml tags - igored on saving
    };
    

    Fällt noch jemandem etwas ein? ...Also mal abgesehen davon einen neuen Archivtyp zu schreiben...


Log in to reply