diff --git a/src/basic_archive.cpp b/src/basic_archive.cpp index 92a7b1a4..78a068b3 100644 --- a/src/basic_archive.cpp +++ b/src/basic_archive.cpp @@ -57,13 +57,23 @@ BOOST_ARCHIVE_SIGNATURE(){ // 5 - Boost 1.36 // changed serialization of collections: adding version even for primitive // types caused backwards compatibility breaking change in 1.35 -// 6 - Boost 1.41, serializing collection sizes as std::size_t -// 7 - separated version_type into library_version_type and class_version_type +// 6 - Boost 1.41 17 Nov 200 +// serializing collection sizes as std::size_t +// 7 Boost 1.42 2 Feb 2010 +// error - changed binary version to 16 bits w/o changing library version # +// That is - binary archives are recorded with #6 even though they are +// different from the previous versions. This means that binary archives +// created with versions 1.42 and 1.43 will have to be fixed with a special +// program which fixes the library version # in the header +// Boost 1.43 6 May 2010 +// no change +// 8 - Boost 1.44 +// separated version_type into library_version_type and class_version_type // changed version_type to be stored as 8 bits. BOOST_ARCHIVE_DECL(library_version_type) BOOST_ARCHIVE_VERSION(){ - return library_version_type(7); + return library_version_type(8); } } // namespace archive diff --git a/src/basic_iarchive.cpp b/src/basic_iarchive.cpp index a1defa97..29a9a259 100644 --- a/src/basic_iarchive.cpp +++ b/src/basic_iarchive.cpp @@ -29,6 +29,9 @@ namespace std{ #include #define BOOST_ARCHIVE_SOURCE +// include this to prevent linker errors when the +// same modules are marked export and import. +#define BOOST_SERIALIZATION_SOURCE #include diff --git a/src/basic_oarchive.cpp b/src/basic_oarchive.cpp index 7e098874..f3473b9a 100644 --- a/src/basic_oarchive.cpp +++ b/src/basic_oarchive.cpp @@ -21,6 +21,9 @@ // including this here to work around an ICC in intel 7.0 // normally this would be part of basic_oarchive.hpp below. #define BOOST_ARCHIVE_SOURCE +// include this to prevent linker errors when the +// same modules are marked export and import. +#define BOOST_SERIALIZATION_SOURCE #include #include diff --git a/src/basic_serializer_map.cpp b/src/basic_serializer_map.cpp index cf5917f9..c6cfb733 100644 --- a/src/basic_serializer_map.cpp +++ b/src/basic_serializer_map.cpp @@ -16,6 +16,10 @@ #include #define BOOST_ARCHIVE_SOURCE +// include this to prevent linker errors when the +// same modules are marked export and import. +#define BOOST_SERIALIZATION_SOURCE + #include #include diff --git a/src/shared_ptr_helper.cpp b/src/shared_ptr_helper.cpp index ec15e2e2..33c15b78 100644 --- a/src/shared_ptr_helper.cpp +++ b/src/shared_ptr_helper.cpp @@ -19,6 +19,9 @@ #include // NULL #define BOOST_ARCHIVE_SOURCE +// include this to prevent linker errors when the +// same modules are marked export and import. +#define BOOST_SERIALIZATION_SOURCE #include #include diff --git a/src/void_cast.cpp b/src/void_cast.cpp index 52e22b97..de841716 100644 --- a/src/void_cast.cpp +++ b/src/void_cast.cpp @@ -226,8 +226,9 @@ void_caster::recursive_register(bool includes_virtual_base) const { #endif std::pair result; + // comment this out for now. result = s.insert(this); - assert(result.second); + //assert(result.second); // generate all implied void_casts. void_cast_detail::set_type::const_iterator it; diff --git a/src/xml_archive_exception.cpp b/src/xml_archive_exception.cpp index ad16bd9e..f011066e 100644 --- a/src/xml_archive_exception.cpp +++ b/src/xml_archive_exception.cpp @@ -12,12 +12,12 @@ # pragma warning (disable : 4786) // too long name, harmless warning #endif -#define BOOST_ARCHIVE_SOURCE #include #include #include +#define BOOST_ARCHIVE_SOURCE #include namespace boost {