
Hello everybody, I would like to know what the purpose of the xml attribute class_id is, how it works and in which cases it can be omitted. An example: “Base” is the (abstract) base class of _GMTF_ and _TTF_, and _Hist_ also has got a similar base class. If a pointer of Hist is a member of GMTF and you want to serialize a pointer of Base, you get something like: <filter class_id="0" class_name="GMTF"> <m_bufHalfMaxSize>4</m_bufHalfMaxSize> <m_cutDetector class_id="1" class_name="Hist"></m_cutDetector> </filter> Here, the macros • BOOST_CLASS_EXPORT_GUID(...), • BOOST_CLASS_IMPLEMENTATION(..., boost::serialization::object_serializable) and • BOOST_CLASS_TRACKING(..., boost::serialization::track_never) are used. The problem now is: Although the exact classes are given by human-readable class names (and used!), you cannot omit or change the class_id. If you edit the XML file by hand, it can become invalid (-> exception on reading). It seems that the class ids are just ascending non-negative numbers. What are the rules for choosing the class ids? Why are they necessary? Is there a trick to remove this attribute or at least to ignore it? Thanks, Frank -- Frank Stähr Technische Universität Berlin Communication Systems Group Sekr. EN1 Einsteinufer 17 10587 Berlin, Germany