
I'm somewhat inexperienced with boost serialization, so forgive me if I'm just missing something. I have a few simple classes that are all serializable. In each class's header, I have BOOST_CLASS_EXPORT( ClassName ) right after the class declaration. All of these classes are header-only, so there is no cpp. All of these classes are very similar, so the statement above is often on the same line of the file (line 21 in this case). When I include all of these headers in a single source file, I get errors like this: 1>Win32WindowImpl.cpp 1>c:\subversion\trunk\vfx\platform\include\messages\minimized.hpp(21) : error C2371: 'vfx::platform::`anonymous-namespace'::boost_serialization_guid_initializer_21' : redefinition; different basic types 1> c:\subversion\trunk\vfx\platform\include\messages\close.hpp(21) : see declaration of 'vfx::platform::`anonymous-namespace'::boost_serialization_guid_initializer_21' 1>c:\subversion\trunk\vfx\platform\include\messages\restored.hpp(21) : error C2371: 'vfx::platform::`anonymous-namespace'::boost_serialization_guid_initializer_21' : redefinition; different basic types 1> c:\subversion\trunk\vfx\platform\include\messages\close.hpp(21) : see declaration of 'vfx::platform::`anonymous-namespace'::boost_serialization_guid_initializer_21' I walked down into the BOOST_CLASS_EXPORT macro and saw that the BOOST_CLASS_EXPORT_GUID macro appends the line number (notice the 21's in the above compiler output) to what it generates. Thinking to myself, "this will never work", I simply went and added empty lines to the header files so that the BOOST_CLASS_EXPORT( ClassName ) was on a different line in each and everything compiled. Am I missing something? Is this fixed in 1.37 (I'm currently forced to use 1.36). If I wanted white-space to matter, I would be writing python :)