[serialization] Patch for Tru64

Attached is a patch which makes the serialization library compile on Tru64/CXX65. It seems the compiler somehow gets lost in the anonymous namespace, replacing it with a named namespace fixes the compilation problem. Markus Index: extended_type_info.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/serialization/src/extended_type_info.cpp,v retrieving revision 1.4 diff -u -w -r1.4 extended_type_info.cpp --- extended_type_info.cpp 24 Apr 2005 05:12:22 -0000 1.4 +++ extended_type_info.cpp 27 Apr 2005 07:58:12 -0000 @@ -30,7 +30,7 @@ // remove all registrations corresponding to a given type void unregister_void_casts(extended_type_info *eti); -namespace { // anonymous +namespace detail { // it turns out that at least one compiler (msvc 6.0) doesn't guarentee // to destroy static objects in exactly the reverse sequence that they @@ -179,13 +179,13 @@ BOOST_SERIALIZATION_DECL const extended_type_info * extended_type_info::find(const char *key) { - return ktmap::find(key); + return detail::ktmap::find(key); } BOOST_SERIALIZATION_DECL void extended_type_info::self_register() { - tkmap::insert(this); + detail::tkmap::insert(this); } BOOST_SERIALIZATION_DECL void @@ -193,7 +193,7 @@ if(NULL == key_) return; key = key_; - ktmap::insert(this); + detail::ktmap::insert(this); } BOOST_SERIALIZATION_DECL @@ -206,8 +206,8 @@ extended_type_info::~extended_type_info(){ // remove entries in maps which correspond to this type BOOST_TRY{ - tkmap::purge(this); - ktmap::purge(this); + detail::tkmap::purge(this); + detail::ktmap::purge(this); unregister_void_casts(this); } BOOST_CATCH(...){} @@ -228,7 +228,7 @@ BOOST_SERIALIZATION_DECL const extended_type_info * extended_type_info::find(const extended_type_info * t) { - return tkmap::find(t); + return detail::tkmap::find(t); } bool BOOST_SERIALIZATION_DECL

Thanks, I'll apply this locally and test before I upload. Robert Ramey Markus Schöpflin wrote:
Attached is a patch which makes the serialization library compile on Tru64/CXX65. It seems the compiler somehow gets lost in the anonymous namespace, replacing it with a named namespace fixes the compilation problem.
Markus
Index: extended_type_info.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/serialization/src/extended_type_info.cpp,v retrieving revision 1.4 diff -u -w -r1.4 extended_type_info.cpp --- extended_type_info.cpp 24 Apr 2005 05:12:22 -0000 1.4 +++ extended_type_info.cpp 27 Apr 2005 07:58:12 -0000 @@ -30,7 +30,7 @@ // remove all registrations corresponding to a given type void unregister_void_casts(extended_type_info *eti);
-namespace { // anonymous +namespace detail {
// it turns out that at least one compiler (msvc 6.0) doesn't guarentee // to destroy static objects in exactly the reverse sequence that they @@ -179,13 +179,13 @@ BOOST_SERIALIZATION_DECL const extended_type_info * extended_type_info::find(const char *key) { - return ktmap::find(key); + return detail::ktmap::find(key); }
BOOST_SERIALIZATION_DECL void extended_type_info::self_register() { - tkmap::insert(this); + detail::tkmap::insert(this); }
BOOST_SERIALIZATION_DECL void @@ -193,7 +193,7 @@ if(NULL == key_) return; key = key_; - ktmap::insert(this); + detail::ktmap::insert(this); }
BOOST_SERIALIZATION_DECL @@ -206,8 +206,8 @@ extended_type_info::~extended_type_info(){ // remove entries in maps which correspond to this type BOOST_TRY{ - tkmap::purge(this); - ktmap::purge(this); + detail::tkmap::purge(this); + detail::ktmap::purge(this); unregister_void_casts(this); } BOOST_CATCH(...){} @@ -228,7 +228,7 @@ BOOST_SERIALIZATION_DECL const extended_type_info * extended_type_info::find(const extended_type_info * t) { - return tkmap::find(t); + return detail::tkmap::find(t); }
bool BOOST_SERIALIZATION_DECL
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
participants (2)
-
Markus Schöpflin
-
Robert Ramey