Frank Stähr wrote
Hello everybody,
I would like to know what the purpose of the xml attribute class_id is,
In the case of pointers - to know what kind of object to create
how it works and in which cases it can be omitted.
archives contain only essential information. Nothing can be omitted without breaking the archive
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">
4
</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 _______________________________________________ Boost-users mailing list
Boost-users@.boost
-- View this message in context: http://boost.2283326.n4.nabble.com/Serialization-XML-Necessity-of-attribute-... Sent from the Boost - Users mailing list archive at Nabble.com.