BOOST_CLASS_VERSION should be in the header. This might be overkill, but its a natural place for it, it's bonehead proof and doesn't have any side effects. BOOST_CLASS_EXPORT has the side effect of instantiatine code so it's "special" My original intention was that all these "serialization traits" be part of the class header description. BOOST_CLASS_EXPORT sort of broke this idea but it still holds for the other ones. Robert Ramey troy d. straszheim wrote:
Robert Ramey wrote:
a) Don't put EXPORT macro in headers. b) Add a small module to your main code which looks like
#include archive .... // repeat as necessary
#include "a.hpp" BOOST_CLASS_EXPORT(A) .... // repeat as necessary for each class defined in the main line
c) for each DLL - do the same thing for classes defined in the DLL.
Robert Ramey
Hey,
I'm wondering if this applies for BOOST_CLASS_VERSION as well. Seems like it should, as you want to be able to #include "myclass.hpp" without worrying about serialization dependencies. I seem to remember seeing some cases where the version wasn't picked up by the archive if the BOOST_CLASS_VERSION wasn't in the header. Ring any bells? If not I can go back and check.
-t