Boost logo

Boost-Commit :

From: ramey_at_[hidden]
Date: 2007-11-01 16:24:04


Author: ramey
Date: 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
New Revision: 40659
URL: http://svn.boost.org/trac/boost/changeset/40659

Log:
passing all msvc and gcc tests
except gcc(release) test_no_rtti and test_shared_ptr132

Text files modified:
   branches/serialization_next_release/boost/boost/archive/basic_binary_oprimitive.hpp | 3 -
   branches/serialization_next_release/boost/boost/archive/basic_text_oprimitive.hpp | 3 -
   branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_iserializer.hpp | 3 -
   branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_oserializer.hpp | 3 -
   branches/serialization_next_release/boost/boost/archive/detail/auto_link_archive.hpp | 33 ++++++++++---------
   branches/serialization_next_release/boost/boost/archive/detail/interface_iarchive.hpp | 6 +--
   branches/serialization_next_release/boost/boost/archive/detail/interface_oarchive.hpp | 4 +-
   branches/serialization_next_release/boost/boost/archive/detail/iserializer.hpp | 59 ++++++++++-------------------------
   branches/serialization_next_release/boost/boost/archive/detail/oserializer.hpp | 66 ++++++++++-----------------------------
   branches/serialization_next_release/boost/boost/archive/detail/polymorphic_iarchive_route.hpp | 6 +-
   branches/serialization_next_release/boost/boost/archive/detail/polymorphic_oarchive_route.hpp | 6 +-
   branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_iserializer.ipp | 4 +-
   branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_oserializer.ipp | 5 ++
   branches/serialization_next_release/boost/boost/archive/shared_ptr_helper.hpp | 10 ++---
   14 files changed, 75 insertions(+), 136 deletions(-)

Modified: branches/serialization_next_release/boost/boost/archive/basic_binary_oprimitive.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/basic_binary_oprimitive.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/basic_binary_oprimitive.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -88,8 +88,7 @@
     // trap usage of invalid uninitialized boolean which would
     // otherwise crash on load.
     void save(const bool t){
- int i = t;
- assert(0 == i || 1 == i);
+ assert(0 == static_cast<int>(t) || 1 == static_cast<int>(t));
         save_binary(& t, sizeof(t));
     }
     BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)

Modified: branches/serialization_next_release/boost/boost/archive/basic_text_oprimitive.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/basic_text_oprimitive.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/basic_text_oprimitive.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -92,8 +92,7 @@
     void save(const bool t){
         // trap usage of invalid uninitialized boolean which would
         // otherwise crash on load.
- int i = t;
- assert(0 == i || 1 == i);
+ assert(0 == static_cast<int>(t) || 1 == static_cast<int>(t));
         if(os.fail())
             boost::throw_exception(archive_exception(archive_exception::stream_error));
         os << t;

Modified: branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_iserializer.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_iserializer.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_iserializer.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -76,8 +76,7 @@
     // type_info. returns NULL if there is no such instance. This
     // would indicate that the no object of the specified type was loaded
     // any where in the code.
- static
- BOOST_ARCHIVE_OR_WARCHIVE_DECL(const basic_pointer_iserializer *)
+ static BOOST_ARCHIVE_OR_WARCHIVE_DECL(const basic_pointer_iserializer *)
     find(
         const boost::serialization::extended_type_info & eti
     );

Modified: branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_oserializer.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_oserializer.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/archive_pointer_oserializer.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -51,8 +51,7 @@
     // type_info. returns NULL, if there is no such instance. This
     // would indicate that the no object of the specified type was saved
     // any where in the code.
- static
- BOOST_ARCHIVE_OR_WARCHIVE_DECL(const basic_pointer_oserializer *)
+ static BOOST_ARCHIVE_OR_WARCHIVE_DECL(const basic_pointer_oserializer *)
     find(
         const boost::serialization::extended_type_info & eti
     );

Modified: branches/serialization_next_release/boost/boost/archive/detail/auto_link_archive.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/auto_link_archive.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/auto_link_archive.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -25,23 +25,24 @@
 
 #include <boost/archive/detail/decl.hpp>
 
-#if !defined(BOOST_ARCHIVE_SOURCE) \
-&& !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SERIALIZATION_NO_LIB)
+#if !defined(BOOST_ALL_NO_LIB) && !defined(BOOST_SERIALIZATION_NO_LIB) \
+&& !defined(BOOST_ARCHIVE_SOURCE) && !defined(BOOST_WARCHIVE_SOURCE) \
+&& !defined(BOOST_SERIALIZATION_SOURCE)
 
-// Set the name of our library, this will get undef'ed by auto_link.hpp
-// once it's done with it:
-//
-#define BOOST_LIB_NAME boost_serialization
-//
-// If we're importing code from a dll, then tell auto_link.hpp about it:
-//
-#if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK)
-# define BOOST_DYN_LINK
-#endif
-//
-// And include the header that does the work:
-//
-#include <boost/config/auto_link.hpp>
+ // Set the name of our library, this will get undef'ed by auto_link.hpp
+ // once it's done with it:
+ //
+ #define BOOST_LIB_NAME boost_serialization
+ //
+ // If we're importing code from a dll, then tell auto_link.hpp about it:
+ //
+ #if defined(BOOST_ALL_DYN_LINK) || defined(BOOST_SERIALIZATION_DYN_LINK)
+ # define BOOST_DYN_LINK
+ #endif
+ //
+ // And include the header that does the work:
+ //
+ #include <boost/config/auto_link.hpp>
 #endif // auto-linking disabled
 
 #endif // ARCHIVE_DETAIL_AUTO_LINK_ARCHIVE_HPP

Modified: branches/serialization_next_release/boost/boost/archive/detail/interface_iarchive.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/interface_iarchive.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/interface_iarchive.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -23,8 +23,6 @@
 #include <boost/serialization/singleton.hpp>
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
-#include <boost/serialization/singleton.hpp>
-
 namespace boost {
 namespace archive {
 namespace detail {
@@ -48,9 +46,9 @@
     }
 
     template<class T>
- const /* BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) */ basic_pointer_iserializer *
+ const basic_pointer_iserializer *
     register_type(T * = NULL){
- const /* BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) */ basic_pointer_iserializer & bpis =
+ const basic_pointer_iserializer & bpis =
             boost::serialization::singleton<
                 pointer_iserializer<Archive, T>
>::get_const_instance();

Modified: branches/serialization_next_release/boost/boost/archive/detail/interface_oarchive.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/interface_oarchive.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/interface_oarchive.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -48,9 +48,9 @@
     }
 
     template<class T>
- const /* BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) */ basic_pointer_oserializer *
+ const basic_pointer_oserializer *
     register_type(const T * = NULL){
- const /* BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) */ basic_pointer_oserializer & bpos =
+ const basic_pointer_oserializer & bpos =
             boost::serialization::singleton<
                 pointer_oserializer<Archive, T>
>::get_const_instance();

Modified: branches/serialization_next_release/boost/boost/archive/detail/iserializer.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/iserializer.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/iserializer.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -46,6 +46,7 @@
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/remove_all_extents.hpp>
 #include <boost/serialization/is_abstract.hpp>
+#include <boost/type_traits/is_polymorphic.hpp>
 
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/if.hpp>
@@ -68,7 +69,6 @@
 #include <boost/archive/detail/basic_iserializer.hpp>
 #include <boost/archive/detail/archive_pointer_iserializer.hpp>
 
-#include <boost/serialization/force_include.hpp>
 #include <boost/serialization/serialization.hpp>
 #include <boost/serialization/version.hpp>
 #include <boost/serialization/level.hpp>
@@ -112,16 +112,15 @@
 public:
     explicit iserializer() :
         basic_iserializer(
- boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance()
+ boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance()
         )
     {}
- virtual BOOST_DLLEXPORT void load_object_data(
+ virtual void load_object_data(
         basic_iarchive & ar,
         void *x,
         const unsigned int file_version
- ) const BOOST_USED ;
+ ) const;
     virtual bool class_info() const {
         return boost::serialization::implementation_level<T>::value
>= boost::serialization::object_class_info;
@@ -145,7 +144,7 @@
 };
 
 template<class Archive, class T>
-BOOST_DLLEXPORT void iserializer<Archive, T>::load_object_data(
+void iserializer<Archive, T>::load_object_data(
     basic_iarchive & ar,
     void *x,
     const unsigned int file_version
@@ -168,28 +167,13 @@
         return boost::serialization::singleton<iserializer<Archive, T> >
             ::get_const_instance();
     }
- virtual BOOST_DLLEXPORT void load_object_ptr(
+ virtual void load_object_ptr(
         basic_iarchive & ar,
         void * & x,
         const unsigned int file_version
- ) const BOOST_USED;
-#if defined(__GNUC__) || ( defined(BOOST_MSVC) && (_MSC_VER <= 1300) )
-public:
-#endif
+ ) const ;
 public:
- // private constructor to inhibit any existence other than the
- // static one. Note GCC doesn't permit constructor to be private
- BOOST_DLLEXPORT pointer_iserializer() BOOST_USED;
- //friend class serialization::singleton<pointer_iserializer<Archive,T> >;
- // at least one compiler (CW) seems to require that serialize_adl
- // be explicitly instantiated. Still under investigation.
-#if 0
- #if !defined(__BORLANDC__)
- void (* const m)(Archive &, T &, const unsigned);
- boost::serialization::extended_type_info * (* e)();
- #endif
-#endif
-// BOOST_DLLEXPORT static const pointer_iserializer & get_instance() BOOST_USED;
+ pointer_iserializer();
 };
 
 // note trick to be sure that operator new is using class specific
@@ -263,7 +247,7 @@
 };
 
 template<class Archive, class T>
-BOOST_DLLEXPORT void pointer_iserializer<Archive, T>::load_object_ptr(
+void pointer_iserializer<Archive, T>::load_object_ptr(
     basic_iarchive & ar,
     void * & x,
     const unsigned int file_version
@@ -302,19 +286,11 @@
 }
 
 template<class Archive, class T>
-BOOST_DLLEXPORT pointer_iserializer<Archive, T>::pointer_iserializer() :
+pointer_iserializer<Archive, T>::pointer_iserializer() :
     archive_pointer_iserializer<Archive>(
- boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance()
+ boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance()
     )
-#if 0
-#if !defined(__BORLANDC__)
- ,
- m(boost::serialization::serialize_adl<Archive, T>),
- e(boost::serialization::type_info_implementation<T>::type::get_instance)
-#endif
-#endif
 {
     boost::serialization::singleton<iserializer<Archive, T> >
         ::get_mutable_instance().set_bpis(this);
@@ -454,9 +430,8 @@
         return static_cast<T *>(
             boost::serialization::void_upcast(
                 eti,
- boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance(),
+ boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance(),
                 t
             )
         );
@@ -543,7 +518,7 @@
 // for loading const objects - but I see no alternative
 template<class Archive, class T>
 inline void load(Archive &ar, const T & t){
- load(ar, const_cast<T &>(t));
+ load(ar, const_cast<T &>(t));
 }
 #endif
 
@@ -551,7 +526,7 @@
 #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
 template<class Archive, class T>
 inline void load_wrapper(Archive &ar, const T&t, mpl::true_){
- boost::archive::load(ar, const_cast<T&>(t));
+ boost::archive::load(ar, const_cast<T&>(t));
 }
 
 #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560))

Modified: branches/serialization_next_release/boost/boost/archive/detail/oserializer.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/oserializer.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/oserializer.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -60,7 +60,6 @@
 #include <boost/archive/detail/basic_oserializer.hpp>
 #include <boost/archive/detail/archive_pointer_oserializer.hpp>
 
-#include <boost/serialization/force_include.hpp>
 #include <boost/serialization/serialization.hpp>
 #include <boost/serialization/version.hpp>
 #include <boost/serialization/level.hpp>
@@ -106,17 +105,16 @@
     // private constructor to inhibit any existence other than the
     // static one
 public:
- explicit BOOST_DLLEXPORT oserializer() :
+ explicit oserializer() :
         basic_oserializer(
- boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance()
+ boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance()
         )
     {}
- virtual BOOST_DLLEXPORT void save_object_data(
+ virtual void save_object_data(
         basic_oarchive & ar,
         const void *x
- ) const BOOST_USED ;
+ ) const ;
     virtual bool class_info() const {
         return boost::serialization::implementation_level<T>::value
>= boost::serialization::object_class_info;
@@ -138,7 +136,7 @@
 };
 
 template<class Archive, class T>
-BOOST_DLLEXPORT void oserializer<Archive, T>::save_object_data(
+void oserializer<Archive, T>::save_object_data(
     basic_oarchive & ar,
     const void *x
 ) const {
@@ -160,31 +158,16 @@
         return boost::serialization::singleton<oserializer<Archive, T> >
             ::get_const_instance();
     }
- virtual BOOST_DLLEXPORT void save_object_ptr(
+ virtual void save_object_ptr(
         basic_oarchive & ar,
         const void * x
- ) const BOOST_USED ;
-//#if defined(__GNUC__) || ( defined(BOOST_MSVC) && (_MSC_VER <= 1300) )
-//public:
-//#endif
- // private constructor to inhibit any existence other than the
- // static one. Note GCC doesn't permit constructor to be private
+ ) const ;
 public:
- explicit BOOST_DLLEXPORT pointer_oserializer() BOOST_USED;
-// friend class serialization::singleton<pointer_oserializer<Archive,T> >;
-#if 0
- #if !defined(__BORLANDC__)
- // at least one compiler (CW) seems to require that serialize_adl
- // be explicitly instantiated. Still under investigation.
- void (* const m)(Archive &, T &, const unsigned);
- boost::serialization::extended_type_info * (* e)();
-#endif
- #endif
-// BOOST_DLLEXPORT static const pointer_oserializer & get_instance() BOOST_USED;
+ explicit pointer_oserializer();
 };
 
 template<class Archive, class T>
-BOOST_DLLEXPORT void pointer_oserializer<Archive, T>::save_object_ptr(
+void pointer_oserializer<Archive, T>::save_object_ptr(
     basic_oarchive & ar,
     const void * x
 ) const {
@@ -203,22 +186,11 @@
 }
 
 template<class Archive, class T>
-BOOST_DLLEXPORT pointer_oserializer<Archive, T>::pointer_oserializer() :
+pointer_oserializer<Archive, T>::pointer_oserializer() :
     archive_pointer_oserializer<Archive>(
- boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance()
- )
-#if 0
-#if !defined(__BORLANDC__)
- ,
- m(boost::serialization::serialize_adl<Archive, T>),
- e(boost::serialization::singleton<
         boost::serialization::type_info_implementation<T>::type
- >::get_instance
+ ::get_const_instance()
     )
-#endif
-#endif
 {
     // make sure appropriate member function is instantiated
     boost::serialization::singleton<oserializer<Archive, T> >
@@ -373,17 +345,15 @@
             const basic_pointer_oserializer * bpos_ptr
         ){
             const boost::serialization::extended_type_info * this_type
- = & boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance();
+ = & boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance();
             // retrieve the true type of the object pointed to
             // if this assertion fails its an error in this library
             assert(NULL != this_type);
 
             const boost::serialization::extended_type_info * true_type
- = boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance().get_derived_extended_type_info(t);
+ = boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance().get_derived_extended_type_info(t);
             // note:if this exception is thrown, be sure that derived pointer
             // is either registered or exported.
             if(NULL == true_type){
@@ -410,9 +380,7 @@
             // since true_type is valid, and this only gets made if the
             // pointer oserializer object has been created, this should never
             // fail
- bpos_ptr = boost::serialization::singleton<
- pointer_oserializer<Archive, T>
- >::get_const_instance().find(* true_type);
+ bpos_ptr = archive_pointer_oserializer<Archive>::find(* true_type);
             assert(NULL != bpos_ptr);
             if(NULL == bpos_ptr)
                 boost::throw_exception(

Modified: branches/serialization_next_release/boost/boost/archive/detail/polymorphic_iarchive_route.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/polymorphic_iarchive_route.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/polymorphic_iarchive_route.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -7,7 +7,7 @@
 #endif
 
 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// polymorphic_iarchive_forward.hpp
+// polymorphic_iarchive_route.hpp
 
 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
 // Use, modification and distribution is subject to the Boost Software
@@ -43,7 +43,7 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer;
 
 template<class ArchiveImplementation>
-class polymorphic_iarchive_forward :
+class polymorphic_iarchive_route :
     public polymorphic_iarchive,
     // note: gcc dynamic cross cast fails if the the derivation below is
     // not public. I think this is a mistake.
@@ -178,7 +178,7 @@
 
     // all current archives take a stream as constructor argument
     template <class _Elem, class _Tr>
- polymorphic_iarchive_forward(
+ polymorphic_iarchive_route(
         std::basic_istream<_Elem, _Tr> & is,
         unsigned int flags = 0
     ) :

Modified: branches/serialization_next_release/boost/boost/archive/detail/polymorphic_oarchive_route.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/detail/polymorphic_oarchive_route.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/detail/polymorphic_oarchive_route.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -7,7 +7,7 @@
 #endif
 
 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// polymorphic_oarchive_forward.hpp
+// polymorphic_oarchive_route.hpp
 
 // (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
 // Use, modification and distribution is subject to the Boost Software
@@ -43,7 +43,7 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer;
 
 template<class ArchiveImplementation>
-class polymorphic_oarchive_forward :
+class polymorphic_oarchive_route :
     public polymorphic_oarchive,
     // note: gcc dynamic cross cast fails if the the derivation below is
     // not public. I think this is a mistake.
@@ -166,7 +166,7 @@
     }
     // all current archives take a stream as constructor argument
     template <class _Elem, class _Tr>
- polymorphic_oarchive_forward(
+ polymorphic_oarchive_route(
         std::basic_ostream<_Elem, _Tr> & os,
         unsigned int flags = 0
     ) :

Modified: branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_iserializer.ipp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_iserializer.ipp (original)
+++ branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_iserializer.ipp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -35,7 +35,7 @@
 ) :
     basic_pointer_iserializer(eti)
 {
- std::pair<serializer_map<Archive>::iterator, bool> result;
+ std::pair<BOOST_DEDUCED_TYPENAME serializer_map<Archive>::iterator, bool> result;
     result = serialization::singleton<serializer_map<Archive> >
         ::get_mutable_instance().insert(this);
     assert(result.second);
@@ -47,7 +47,7 @@
     const boost::serialization::extended_type_info & eti
 ){
     const basic_serializer_arg bs(eti);
- serializer_map<Archive>::const_iterator it;
+ BOOST_DEDUCED_TYPENAME serializer_map<Archive>::const_iterator it;
     it = boost::serialization::singleton<serializer_map<Archive> >
         ::get_const_instance().find(& bs);
     assert(

Modified: branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_oserializer.ipp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_oserializer.ipp (original)
+++ branches/serialization_next_release/boost/boost/archive/impl/archive_pointer_oserializer.ipp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -34,7 +34,10 @@
 ) :
     basic_pointer_oserializer(eti)
 {
- std::pair<serializer_map<Archive>::iterator, bool> result;
+ std::pair<
+ BOOST_DEDUCED_TYPENAME serializer_map<Archive>::iterator,
+ bool
+ > result;
     result = serialization::singleton<serializer_map<Archive> >
         ::get_mutable_instance().insert(this);
     assert(result.second);

Modified: branches/serialization_next_release/boost/boost/archive/shared_ptr_helper.hpp
==============================================================================
--- branches/serialization_next_release/boost/boost/archive/shared_ptr_helper.hpp (original)
+++ branches/serialization_next_release/boost/boost/archive/shared_ptr_helper.hpp 2007-11-01 16:24:02 EDT (Thu, 01 Nov 2007)
@@ -87,9 +87,8 @@
     template<class T>
     void * object_identifier(T * t) const {
         const boost::serialization::extended_type_info * true_type
- = boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance().get_derived_extended_type_info(*t);
+ = boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance().get_derived_extended_type_info(*t);
         // note:if this exception is thrown, be sure that derived pointer
         // is either registered or exported.
         if(NULL == true_type)
@@ -99,9 +98,8 @@
                 )
             );
         const boost::serialization::extended_type_info * this_type
- = & boost::serialization::singleton<
- boost::serialization::type_info_implementation<T>::type
- >::get_const_instance();
+ = & boost::serialization::type_info_implementation<T>::type
+ ::get_const_instance();
         void * vp = void_downcast(*true_type, *this_type, t);
         return vp;
     }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk