Robert Ramey
(and given how it's defined and used, there seems to be no way of overriding via template specialization).
There is ALWAYS a way. If nothing else works you can wrap your type in its own class/struct and serialize that with inline funcitions. In this way you can do things like serializing a pointer to an integer which would normally not possible as the implementation level is primitive.
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).
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). thanks! --craig