If I remember correctly, I handled enums as integers because I had to do it this way to get it passed some compilers - probably borland. I suspect that it didn't distinguish between enums and integers. And I don't know if different enums are considered different types by different compilers. craigp wrote:
Robert Ramey
writes:
wrapping each enum in a special class doesn't seem an acceptable work-around. is there a reason to not allow users to override enums like other types? all it would take would be to move it out of archive/details and into the serialization directory (although if you required users to explicitly #include enum.hpp would probably break some existing code).
It would also be easy to handle enums in your own archive class derived from xml_archive. E.G. craigs_xml_i/oarchive which handles enums they way you want and passes everything else to the base class. This is is pretty easy. See demo_portable_archive.
Perhaps save_enum_type and save_array_type could be put into a separate header (out of the archive/detail and maybe into boost/serialization along with vector.hpp, etc)?
arrays have been broken out in the 1.35 version.
there's save_enum_type() and save_array_type() in that file; is the latter dead code? i don't want, for example, the counts serialized (i need fine control of the output to make it comply with an xml-schema).
I didn't included that, you'll have to investigate what its for and how it gets called.
thanks!
You're welcome!
--craig
Robert Ramey