$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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;
     }