Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r66414 - in branches/release/boost/archive: . detail impl iterators
From: ramey_at_[hidden]
Date: 2010-11-06 12:31:38


Author: ramey
Date: 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
New Revision: 66414
URL: http://svn.boost.org/trac/boost/changeset/66414

Log:
merge to release branch
Properties modified:
   branches/release/boost/archive/ (props changed)
   branches/release/boost/archive/basic_archive.hpp (contents, props changed)
Text files modified:
   branches/release/boost/archive/basic_archive.hpp | 10 ++--
   branches/release/boost/archive/basic_binary_iarchive.hpp | 71 ++++++++++++++++++++++++++++++++++++---
   branches/release/boost/archive/basic_binary_iprimitive.hpp | 4 +-
   branches/release/boost/archive/basic_binary_oarchive.hpp | 53 +++++++++++++++++++++++++++--
   branches/release/boost/archive/basic_binary_oprimitive.hpp | 4 +-
   branches/release/boost/archive/basic_xml_iarchive.hpp | 4 +-
   branches/release/boost/archive/basic_xml_oarchive.hpp | 4 +-
   branches/release/boost/archive/detail/check.hpp | 20 +++++-----
   branches/release/boost/archive/detail/iserializer.hpp | 64 +++++++++++++++++++----------------
   branches/release/boost/archive/detail/oserializer.hpp | 56 +++++++++++++++---------------
   branches/release/boost/archive/detail/polymorphic_iarchive_route.hpp | 8 +++-
   branches/release/boost/archive/detail/polymorphic_oarchive_route.hpp | 6 +++
   branches/release/boost/archive/impl/archive_serializer_map.ipp | 10 ++--
   branches/release/boost/archive/impl/basic_binary_iarchive.ipp | 34 ++++++++++++++++++
   branches/release/boost/archive/iterators/base64_from_binary.hpp | 2
   branches/release/boost/archive/iterators/binary_from_base64.hpp | 2
   branches/release/boost/archive/iterators/insert_linebreaks.hpp | 2
   branches/release/boost/archive/iterators/mb_from_wchar.hpp | 2
   branches/release/boost/archive/iterators/remove_whitespace.hpp | 2
   branches/release/boost/archive/iterators/transform_width.hpp | 2
   branches/release/boost/archive/iterators/wchar_from_mb.hpp | 2
   branches/release/boost/archive/iterators/xml_escape.hpp | 2
   branches/release/boost/archive/iterators/xml_unescape.hpp | 2
   branches/release/boost/archive/polymorphic_iarchive.hpp | 2
   branches/release/boost/archive/polymorphic_oarchive.hpp | 2
   branches/release/boost/archive/shared_ptr_helper.hpp | 20 +++++-----
   branches/release/boost/archive/xml_archive_exception.hpp | 5 +-
   27 files changed, 274 insertions(+), 121 deletions(-)

Modified: branches/release/boost/archive/basic_archive.hpp
==============================================================================
--- branches/release/boost/archive/basic_archive.hpp (original)
+++ branches/release/boost/archive/basic_archive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -54,7 +54,7 @@
         return *this;
     }
     // used for text output
- operator const base_type () const {
+ operator base_type () const {
         return t;
     }
     // used for text input
@@ -90,7 +90,7 @@
         return *this;
     }
     // used for text output
- operator const base_type () const {
+ operator base_type () const {
         return t;
     }
     // used for text intput
@@ -127,7 +127,7 @@
     }
 
     // used for text output
- operator const int () const {
+ operator int () const {
         return t;
     }
     // used for text input
@@ -161,7 +161,7 @@
         return *this;
     }
     // used for text output
- operator const uint_least32_t () const {
+ operator uint_least32_t () const {
         return t;
     }
     // used for text input
@@ -284,7 +284,7 @@
 
 #include <boost/serialization/is_bitwise_serializable.hpp>
 
-// set types used internally by the serialization library
+// set types used internally by the serialization library
 // to be bitwise serializable
 
 BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::library_version_type)

Modified: branches/release/boost/archive/basic_binary_iarchive.hpp
==============================================================================
--- branches/release/boost/archive/basic_binary_iarchive.hpp (original)
+++ branches/release/boost/archive/basic_binary_iarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -32,6 +32,7 @@
 #include <boost/serialization/collection_size_type.hpp>
 #include <boost/serialization/string.hpp>
 #include <boost/serialization/item_version_type.hpp>
+#include <boost/integer_traits.hpp>
 
 #ifdef BOOST_MSVC
 # pragma warning(push)
@@ -71,7 +72,7 @@
 
     // include these to trap a change in binary format which
     // isn't specifically handled
- BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(char));
+ BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(bool));
     // upto 32K classes
     BOOST_STATIC_ASSERT(sizeof(class_id_type) == sizeof(int_least16_t));
     BOOST_STATIC_ASSERT(sizeof(class_id_reference_type) == sizeof(int_least16_t));
@@ -82,21 +83,61 @@
     // binary files don't include the optional information
     void load_override(class_id_optional_type & /* t */, int){}
 
- void load_override(boost::serialization::item_version_type & t, int version){
- if(library_version_type(6) < this->get_library_version()){
+ void load_override(class_id_type & t, int version){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
             this->detail_common_iarchive::load_override(t, version);
         }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ int_least16_t x=0;
+ * this->This() >> x;
+ t = boost::archive::class_id_type(x);
+ }
         else{
- unsigned int x=0;
+ int x=0;
             * this->This() >> x;
- t = boost::serialization::item_version_type(x);
+ t = boost::archive::class_id_type(x);
+ }
+ }
+ void load_override(class_id_reference_type & t, int version){
+ load_override(static_cast<class_id_type &>(t), version);
+ }
+#if 0
+ void load_override(class_id_reference_type & t, int version){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
+ this->detail_common_iarchive::load_override(t, version);
+ }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ int_least16_t x=0;
+ * this->This() >> x;
+ t = boost::archive::class_id_reference_type(
+ boost::archive::class_id_type(x)
+ );
+ }
+ else{
+ int x=0;
+ * this->This() >> x;
+ t = boost::archive::class_id_reference_type(
+ boost::archive::class_id_type(x)
+ );
         }
     }
+#endif
 
     void load_override(version_type & t, int version){
- if(boost::archive::library_version_type(6) < this->get_library_version()){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
             this->detail_common_iarchive::load_override(t, version);
         }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ uint_least16_t x=0;
+ * this->This() >> x;
+ t = boost::archive::version_type(x);
+ }
         else{
             unsigned int x=0;
             * this->This() >> x;
@@ -104,6 +145,24 @@
         }
     }
 
+ void load_override(boost::serialization::item_version_type & t, int version){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
+ this->detail_common_iarchive::load_override(t, version);
+ }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ uint_least16_t x=0;
+ * this->This() >> x;
+ t = boost::serialization::item_version_type(x);
+ }
+ else{
+ unsigned int x=0;
+ * this->This() >> x;
+ t = boost::serialization::item_version_type(x);
+ }
+ }
+
     void load_override(serialization::collection_size_type & t, int version){
         if(boost::archive::library_version_type(5) < this->get_library_version()){
             this->detail_common_iarchive::load_override(t, version);

Modified: branches/release/boost/archive/basic_binary_iprimitive.hpp
==============================================================================
--- branches/release/boost/archive/basic_binary_iprimitive.hpp (original)
+++ branches/release/boost/archive/basic_binary_iprimitive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -126,10 +126,10 @@
         template <class T>
         #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS)
             struct apply {
- typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable<T>::type type;
+ typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable< T >::type type;
             };
         #else
- struct apply : public boost::serialization::is_bitwise_serializable<T> {};
+ struct apply : public boost::serialization::is_bitwise_serializable< T > {};
         #endif
     };
 

Modified: branches/release/boost/archive/basic_binary_oarchive.hpp
==============================================================================
--- branches/release/boost/archive/basic_binary_oarchive.hpp (original)
+++ branches/release/boost/archive/basic_binary_oarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -34,6 +34,7 @@
 #include <boost/archive/detail/common_oarchive.hpp>
 #include <boost/serialization/string.hpp>
 #include <boost/serialization/collection_size_type.hpp>
+#include <boost/serialization/item_version_type.hpp>
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
@@ -76,7 +77,7 @@
 
     // include these to trap a change in binary format which
     // isn't specifically handled
- BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(char));
+ BOOST_STATIC_ASSERT(sizeof(tracking_type) == sizeof(bool));
     // upto 32K classes
     BOOST_STATIC_ASSERT(sizeof(class_id_type) == sizeof(int_least16_t));
     BOOST_STATIC_ASSERT(sizeof(class_id_reference_type) == sizeof(int_least16_t));
@@ -87,14 +88,58 @@
     // binary files don't include the optional information
     void save_override(const class_id_optional_type & /* t */, int){}
 
- #if 0 // enable this if we decide to support generation of previous versions
+ // enable this if we decide to support generation of previous versions
+ #if 0
     void save_override(const boost::archive::version_type & t, int version){
- if(this->get_library_version() < boost::archive::library_version_type(7)){
- * this->This() << static_cast<int_least16_t >(t);
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
+ this->detail_common_oarchive::save_override(t, version);
         }
         else
+ if(boost::archive::library_version_type(6) < lvt){
+ const boost::uint_least16_t x = t;
+ * this->This() << x;
+ }
+ else{
+ const unsigned int x = t;
+ * this->This() << x;
+ }
+ }
+ void save_override(const boost::serialization::item_version_type & t, int version){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
             this->detail_common_oarchive::save_override(t, version);
+ }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ const boost::uint_least16_t x = t;
+ * this->This() << x;
+ }
+ else{
+ const unsigned int x = t;
+ * this->This() << x;
+ }
     }
+
+ void save_override(class_id_type & t, int version){
+ library_version_type lvt = this->get_library_version();
+ if(boost::archive::library_version_type(7) < lvt){
+ this->detail_common_oarchive::save_override(t, version);
+ }
+ else
+ if(boost::archive::library_version_type(6) < lvt){
+ const boost::int_least16_t x = t;
+ * this->This() << x;
+ }
+ else{
+ const int x = t;
+ * this->This() << x;
+ }
+ }
+ void save_override(class_id_reference_type & t, int version){
+ save_override(static_cast<class_id_type &>(t), version);
+ }
+
     #endif
 
     // explicitly convert to char * to avoid compile ambiguities

Modified: branches/release/boost/archive/basic_binary_oprimitive.hpp
==============================================================================
--- branches/release/boost/archive/basic_binary_oprimitive.hpp (original)
+++ branches/release/boost/archive/basic_binary_oprimitive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -122,10 +122,10 @@
         template <class T>
         #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS)
             struct apply {
- typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable<T>::type type;
+ typedef BOOST_DEDUCED_TYPENAME boost::serialization::is_bitwise_serializable< T >::type type;
             };
         #else
- struct apply : public boost::serialization::is_bitwise_serializable<T> {};
+ struct apply : public boost::serialization::is_bitwise_serializable< T > {};
         #endif
     };
     

Modified: branches/release/boost/archive/basic_xml_iarchive.hpp
==============================================================================
--- branches/release/boost/archive/basic_xml_iarchive.hpp (original)
+++ branches/release/boost/archive/basic_xml_iarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -67,7 +67,7 @@
         // If your program fails to compile here, its most likely due to
         // not specifying an nvp wrapper around the variable to
         // be serialized.
- BOOST_MPL_ASSERT((serialization::is_wrapper<T>));
+ BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
         this->detail_common_iarchive::load_override(t, 0);
     }
 
@@ -79,7 +79,7 @@
         #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
         const
         #endif
- boost::serialization::nvp<T> & t,
+ boost::serialization::nvp< T > & t,
         int
     ){
         this->This()->load_start(t.name());

Modified: branches/release/boost/archive/basic_xml_oarchive.hpp
==============================================================================
--- branches/release/boost/archive/basic_xml_oarchive.hpp (original)
+++ branches/release/boost/archive/basic_xml_oarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -89,7 +89,7 @@
         // If your program fails to compile here, its most likely due to
         // not specifying an nvp wrapper around the variable to
         // be serialized.
- BOOST_MPL_ASSERT((serialization::is_wrapper<T>));
+ BOOST_MPL_ASSERT((serialization::is_wrapper< T >));
         this->detail_common_oarchive::save_override(t, 0);
     }
 
@@ -100,7 +100,7 @@
         #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
         const
         #endif
- ::boost::serialization::nvp<T> & t,
+ ::boost::serialization::nvp< T > & t,
         int
     ){
         this->This()->save_start(t.name());

Modified: branches/release/boost/archive/detail/check.hpp
==============================================================================
--- branches/release/boost/archive/detail/check.hpp (original)
+++ branches/release/boost/archive/detail/check.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -51,7 +51,7 @@
 inline void check_object_level(){
     typedef
         BOOST_DEDUCED_TYPENAME mpl::greater_equal<
- serialization::implementation_level<T>,
+ serialization::implementation_level< T >,
             mpl::int_<serialization::primitive_type>
>::type typex;
 
@@ -65,11 +65,11 @@
     typedef
         BOOST_DEDUCED_TYPENAME mpl::or_<
             BOOST_DEDUCED_TYPENAME mpl::greater<
- serialization::implementation_level<T>,
+ serialization::implementation_level< T >,
                 mpl::int_<serialization::object_serializable>
>,
             BOOST_DEDUCED_TYPENAME mpl::equal_to<
- serialization::version<T>,
+ serialization::version< T >,
                 mpl::int_<0>
>
> typex;
@@ -82,9 +82,9 @@
 inline void check_object_tracking(){
     // presume it has already been determined that
     // T is not a const
- BOOST_STATIC_ASSERT(! boost::is_const<T>::value);
+ BOOST_STATIC_ASSERT(! boost::is_const< T >::value);
     typedef BOOST_DEDUCED_TYPENAME mpl::equal_to<
- serialization::tracking_level<T>,
+ serialization::tracking_level< T >,
         mpl::int_<serialization::track_never>
>::type typex;
     // saving an non-const object of a type not marked "track_never)
@@ -107,12 +107,12 @@
     typedef
         BOOST_DEDUCED_TYPENAME mpl::or_<
             BOOST_DEDUCED_TYPENAME mpl::greater<
- serialization::implementation_level<T>,
+ serialization::implementation_level< T >,
                 mpl::int_<serialization::object_serializable>
>,
             BOOST_DEDUCED_TYPENAME mpl::not_<
                 BOOST_DEDUCED_TYPENAME mpl::equal_to<
- serialization::tracking_level<T>,
+ serialization::tracking_level< T >,
                     mpl::int_<serialization::track_selectively>
>
>
@@ -140,7 +140,7 @@
 template<class T>
 void inline check_pointer_tracking(){
     typedef BOOST_DEDUCED_TYPENAME mpl::greater<
- serialization::tracking_level<T>,
+ serialization::tracking_level< T >,
         mpl::int_<serialization::track_never>
>::type typex;
     // serializing an object of a type marked "track_never" through a pointer
@@ -152,9 +152,9 @@
 inline void check_const_loading(){
     typedef
         BOOST_DEDUCED_TYPENAME mpl::or_<
- BOOST_DEDUCED_TYPENAME boost::serialization::is_wrapper<T>,
+ BOOST_DEDUCED_TYPENAME boost::serialization::is_wrapper< T >,
             BOOST_DEDUCED_TYPENAME mpl::not_<
- BOOST_DEDUCED_TYPENAME boost::is_const<T>
+ BOOST_DEDUCED_TYPENAME boost::is_const< T >
>
>::type typex;
     // cannot load data into a "const" object unless it's a

Modified: branches/release/boost/archive/detail/iserializer.hpp
==============================================================================
--- branches/release/boost/archive/detail/iserializer.hpp (original)
+++ branches/release/boost/archive/detail/iserializer.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -128,7 +128,7 @@
         basic_iserializer(
             boost::serialization::singleton<
                 BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance()
         )
     {}
@@ -139,21 +139,21 @@
         const unsigned int file_version
     ) const BOOST_USED;
     virtual bool class_info() const {
- return boost::serialization::implementation_level<T>::value
+ return boost::serialization::implementation_level< T >::value
>= boost::serialization::object_class_info;
     }
     virtual bool tracking(const unsigned int /* flags */) const {
- return boost::serialization::tracking_level<T>::value
+ return boost::serialization::tracking_level< T >::value
                 == boost::serialization::track_always
- || ( boost::serialization::tracking_level<T>::value
+ || ( boost::serialization::tracking_level< T >::value
                 == boost::serialization::track_selectively
                 && serialized_as_pointer());
     }
     virtual version_type version() const {
- return version_type(::boost::serialization::version<T>::value);
+ return version_type(::boost::serialization::version< T >::value);
     }
     virtual bool is_polymorphic() const {
- return boost::is_polymorphic<T>::value;
+ return boost::is_polymorphic< T >::value;
     }
     virtual ~iserializer(){};
 };
@@ -168,6 +168,12 @@
     void *x,
     const unsigned int file_version
 ) const {
+ // note: we now comment this out. Before we permited archive
+ // version # to be very large. Now we don't. To permit
+ // readers of these old archives, we have to suppress this
+ // code. Perhaps in the future we might re-enable it but
+ // permit its suppression with a runtime switch.
+ #if 0
     // trap case where the program cannot handle the current version
     if(file_version > static_cast<const unsigned int>(version()))
         boost::serialization::throw_exception(
@@ -176,7 +182,7 @@
                 get_debug_info()
             )
         );
-
+ #endif
     // make sure call is routed through the higest interface that might
     // be specialized by the user.
     boost::serialization::serialize_adl(
@@ -230,7 +236,7 @@
 template<class T>
 struct heap_allocator
 {
- // boost::has_new_operator<T> doesn't work on these compilers
+ // boost::has_new_operator< T > doesn't work on these compilers
     #if DONT_USE_HAS_NEW_OPERATOR
         // This doesn't handle operator new overload for class T
         static T * invoke(){
@@ -250,7 +256,7 @@
         static T * invoke() {
             typedef BOOST_DEDUCED_TYPENAME
                 mpl::eval_if<
- boost::has_new_operator<T>,
+ boost::has_new_operator< T >,
                     mpl::identity<has_new_operator >,
                     mpl::identity<doesnt_have_new_operator >
>::type typex;
@@ -296,7 +302,7 @@
     Archive & ar_impl =
         boost::serialization::smart_cast_reference<Archive &>(ar);
 
- auto_ptr_with_deleter<T> ap(heap_allocator<T>::invoke());
+ auto_ptr_with_deleter< T > ap(heap_allocator< T >::invoke());
     if(NULL == ap.get())
         boost::serialization::throw_exception(std::bad_alloc()) ;
 
@@ -331,7 +337,7 @@
     basic_pointer_iserializer(
         boost::serialization::singleton<
             BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance()
     )
 {
@@ -367,7 +373,7 @@
             boost::serialization::serialize_adl(
                 ar,
                 const_cast<T &>(t),
- boost::serialization::version<T>::value
+ boost::serialization::version< T >::value
             );
         }
     };
@@ -402,7 +408,7 @@
         typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
                 // if its primitive
                 mpl::equal_to<
- boost::serialization::implementation_level<T>,
+ boost::serialization::implementation_level< T >,
                     mpl::int_<boost::serialization::primitive_type>
>,
                 mpl::identity<load_primitive>,
@@ -410,7 +416,7 @@
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
             // class info / version
             mpl::greater_equal<
- boost::serialization::implementation_level<T>,
+ boost::serialization::implementation_level< T >,
                         mpl::int_<boost::serialization::object_class_info>
>,
             // do standard load
@@ -419,7 +425,7 @@
         BOOST_DEDUCED_TYPENAME mpl::eval_if<
             // no tracking
                     mpl::equal_to<
- boost::serialization::tracking_level<T>,
+ boost::serialization::tracking_level< T >,
                         mpl::int_<boost::serialization::track_never>
>,
                 // do a fast load
@@ -428,8 +434,8 @@
             // do a fast load only tracking is turned off
             mpl::identity<load_conditional>
> > >::type typex;
- check_object_versioning<T>();
- check_object_level<T>();
+ check_object_versioning< T >();
+ check_object_level< T >();
         typex::invoke(ar, t);
     }
 };
@@ -441,7 +447,7 @@
         template<class T>
         static const basic_pointer_iserializer * register_type(Archive & /* ar */){
             // it has? to be polymorphic
- BOOST_STATIC_ASSERT(boost::is_polymorphic<T>::value);
+ BOOST_STATIC_ASSERT(boost::is_polymorphic< T >::value);
             return static_cast<basic_pointer_iserializer *>(NULL);
          }
     };
@@ -466,7 +472,7 @@
                 boost::mpl::identity<abstract>,
                 boost::mpl::identity<non_abstract>
>::type typex;
- return typex::template register_type<T>(ar);
+ return typex::template register_type< T >(ar);
     }
 
     template<class T>
@@ -482,7 +488,7 @@
                     eti,
                     boost::serialization::singleton<
                         BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance(),
                     t
                 )
@@ -492,8 +498,8 @@
 
     template<class T>
     static void check_load(T & /* t */){
- check_pointer_level<T>();
- check_pointer_tracking<T>();
+ check_pointer_level< T >();
+ check_pointer_tracking< T >();
     }
 
     static const basic_pointer_iserializer *
@@ -530,7 +536,7 @@
         // convert integers to correct enum to load
         int i;
         ar >> boost::serialization::make_nvp(NULL, i);
- t = static_cast<T>(i);
+ t = static_cast< T >(i);
     }
 };
 
@@ -538,7 +544,7 @@
 struct load_array_type {
     template<class T>
     static void invoke(Archive &ar, T &t){
- typedef BOOST_DEDUCED_TYPENAME remove_extent<T>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME remove_extent< T >::type value_type;
         
         // convert integers to correct enum to load
         // determine number of elements in the array. Consider the
@@ -568,15 +574,15 @@
     // const object with a compiler that doesn't have correct
     // funtion template ordering. On other compilers, this is
     // handled below.
- detail::check_const_loading<T>();
+ detail::check_const_loading< T >();
     typedef
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_pointer<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_pointer< T >,
             mpl::identity<detail::load_pointer_type<Archive> >
         ,//else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_array<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_array< T >,
             mpl::identity<detail::load_array_type<Archive> >
         ,//else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_enum<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_enum< T >,
             mpl::identity<detail::load_enum_type<Archive> >
         ,//else
             mpl::identity<detail::load_non_pointer_type<Archive> >
@@ -613,7 +619,7 @@
 #if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x560))
 template<class Archive, class T>
 inline void load(Archive &ar, const T&t){
- load_wrapper(ar,t,serialization::is_wrapper<T>());
+ load_wrapper(ar,t,serialization::is_wrapper< T >());
 }
 #endif
 #endif

Modified: branches/release/boost/archive/detail/oserializer.hpp
==============================================================================
--- branches/release/boost/archive/detail/oserializer.hpp (original)
+++ branches/release/boost/archive/detail/oserializer.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -107,7 +107,7 @@
         basic_oserializer(
             boost::serialization::singleton<
                 BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance()
         )
     {}
@@ -116,19 +116,19 @@
         const void *x
     ) const BOOST_USED;
     virtual bool class_info() const {
- return boost::serialization::implementation_level<T>::value
+ return boost::serialization::implementation_level< T >::value
>= boost::serialization::object_class_info;
     }
     virtual bool tracking(const unsigned int /* flags */) const {
- return boost::serialization::tracking_level<T>::value == boost::serialization::track_always
- || (boost::serialization::tracking_level<T>::value == boost::serialization::track_selectively
+ return boost::serialization::tracking_level< T >::value == boost::serialization::track_always
+ || (boost::serialization::tracking_level< T >::value == boost::serialization::track_selectively
                 && serialized_as_pointer());
     }
     virtual version_type version() const {
- return version_type(::boost::serialization::version<T>::value);
+ return version_type(::boost::serialization::version< T >::value);
     }
     virtual bool is_polymorphic() const {
- return boost::is_polymorphic<T>::value;
+ return boost::is_polymorphic< T >::value;
     }
     virtual ~oserializer(){}
 };
@@ -144,7 +144,7 @@
 ) const {
     // make sure call is routed through the highest interface that might
     // be specialized by the user.
- BOOST_STATIC_ASSERT(boost::is_const<T>::value == false);
+ BOOST_STATIC_ASSERT(boost::is_const< T >::value == false);
     boost::serialization::serialize_adl(
         boost::serialization::smart_cast_reference<Archive &>(ar),
         * static_cast<T *>(const_cast<void *>(x)),
@@ -190,7 +190,7 @@
     // make sure call is routed through the highest interface that might
     // be specialized by the user.
     T * t = static_cast<T *>(const_cast<void *>(x));
- const unsigned int file_version = boost::serialization::version<T>::value;
+ const unsigned int file_version = boost::serialization::version< T >::value;
     Archive & ar_impl
         = boost::serialization::smart_cast_reference<Archive &>(ar);
     boost::serialization::save_construct_data_adl<Archive, T>(
@@ -206,7 +206,7 @@
     basic_pointer_oserializer(
         boost::serialization::singleton<
             BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance()
     )
 {
@@ -241,7 +241,7 @@
             boost::serialization::serialize_adl(
                 ar,
                 const_cast<T &>(t),
- ::boost::serialization::version<T>::value
+ ::boost::serialization::version< T >::value
             );
         }
     };
@@ -278,7 +278,7 @@
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
             // if its primitive
                 mpl::equal_to<
- boost::serialization::implementation_level<T>,
+ boost::serialization::implementation_level< T >,
                     mpl::int_<boost::serialization::primitive_type>
>,
                 mpl::identity<save_primitive>,
@@ -286,7 +286,7 @@
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
                 // class info / version
                 mpl::greater_equal<
- boost::serialization::implementation_level<T>,
+ boost::serialization::implementation_level< T >,
                     mpl::int_<boost::serialization::object_class_info>
>,
                 // do standard save
@@ -295,7 +295,7 @@
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
                     // no tracking
                 mpl::equal_to<
- boost::serialization::tracking_level<T>,
+ boost::serialization::tracking_level< T >,
                     mpl::int_<boost::serialization::track_never>
>,
                 // do a fast save
@@ -304,13 +304,13 @@
                 // do a fast save only tracking is turned off
                 mpl::identity<save_conditional>
> > >::type typex;
- check_object_versioning<T>();
+ check_object_versioning< T >();
         typex::invoke(ar, t);
     }
     template<class T>
     static void invoke(Archive & ar, T & t){
- check_object_level<T>();
- check_object_tracking<T>();
+ check_object_level< T >();
+ check_object_tracking< T >();
         invoke(ar, const_cast<const T &>(t));
     }
 };
@@ -322,7 +322,7 @@
         template<class T>
         static const basic_pointer_oserializer * register_type(Archive & /* ar */){
             // it has? to be polymorphic
- BOOST_STATIC_ASSERT(boost::is_polymorphic<T>::value);
+ BOOST_STATIC_ASSERT(boost::is_polymorphic< T >::value);
             return NULL;
         }
     };
@@ -343,11 +343,11 @@
         // virtual serialize functions used for plug-ins
         typedef
             BOOST_DEDUCED_TYPENAME mpl::eval_if<
- boost::serialization::is_abstract<T>,
+ boost::serialization::is_abstract< T >,
                 mpl::identity<abstract>,
                 mpl::identity<non_abstract>
>::type typex;
- return typex::template register_type<T>(ar);
+ return typex::template register_type< T >(ar);
     }
 
     struct non_polymorphic
@@ -374,10 +374,10 @@
             T & t
         ){
             BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type const
+ boost::serialization::type_info_implementation< T >::type const
             & i = boost::serialization::singleton<
                 BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance();
 
             boost::serialization::extended_type_info const * const this_type = & i;
@@ -450,10 +450,10 @@
         Archive & ar,
         const T & t
     ){
- check_pointer_level<T>();
- check_pointer_tracking<T>();
+ check_pointer_level< T >();
+ check_pointer_tracking< T >();
         typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- is_polymorphic<T>,
+ is_polymorphic< T >,
             mpl::identity<polymorphic>,
             mpl::identity<non_polymorphic>
>::type type;
@@ -490,7 +490,7 @@
 {
     template<class T>
     static void invoke(Archive &ar, const T &t){
- typedef BOOST_DEDUCED_TYPENAME boost::remove_extent<T>::type value_type;
+ typedef BOOST_DEDUCED_TYPENAME boost::remove_extent< T >::type value_type;
         
         save_access::end_preamble(ar);
         // consider alignment
@@ -509,13 +509,13 @@
 template<class Archive, class T>
 inline void save(Archive & ar, /*const*/ T &t){
     typedef
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_pointer<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_pointer< T >,
             mpl::identity<detail::save_pointer_type<Archive> >,
         //else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_enum<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_enum< T >,
             mpl::identity<detail::save_enum_type<Archive> >,
         //else
- BOOST_DEDUCED_TYPENAME mpl::eval_if<is_array<T>,
+ BOOST_DEDUCED_TYPENAME mpl::eval_if<is_array< T >,
             mpl::identity<detail::save_array_type<Archive> >,
         //else
             mpl::identity<detail::save_non_pointer_type<Archive> >

Modified: branches/release/boost/archive/detail/polymorphic_iarchive_route.hpp
==============================================================================
--- branches/release/boost/archive/detail/polymorphic_iarchive_route.hpp (original)
+++ branches/release/boost/archive/detail/polymorphic_iarchive_route.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -180,13 +180,17 @@
     polymorphic_iarchive & operator>>(T & t){
         return polymorphic_iarchive::operator>>(t);
     }
-
     // the & operator
     template<class T>
     polymorphic_iarchive & operator&(T & t){
         return polymorphic_iarchive::operator&(t);
     }
-
+ // register type function
+ template<class T>
+ const basic_pointer_iserializer *
+ register_type(T * t = NULL){
+ return ArchiveImplementation::register_type(t);
+ }
     // all current archives take a stream as constructor argument
     template <class _Elem, class _Tr>
     polymorphic_iarchive_route(

Modified: branches/release/boost/archive/detail/polymorphic_oarchive_route.hpp
==============================================================================
--- branches/release/boost/archive/detail/polymorphic_oarchive_route.hpp (original)
+++ branches/release/boost/archive/detail/polymorphic_oarchive_route.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -175,6 +175,12 @@
     polymorphic_oarchive & operator&(T & t){
         return polymorphic_oarchive::operator&(t);
     }
+ // register type function
+ template<class T>
+ const basic_pointer_oserializer *
+ register_type(T * t = NULL){
+ return ArchiveImplementation::register_type(t);
+ }
     // all current archives take a stream as constructor argument
     template <class _Elem, class _Tr>
     polymorphic_oarchive_route(

Modified: branches/release/boost/archive/impl/archive_serializer_map.ipp
==============================================================================
--- branches/release/boost/archive/impl/archive_serializer_map.ipp (original)
+++ branches/release/boost/archive/impl/archive_serializer_map.ipp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -26,7 +26,7 @@
 # pragma warning(disable : 4511 4512)
 #endif
 
-namespace { // anon
+namespace extra_detail { // anon
     template<class Archive>
     class map : public basic_serializer_map
     {};
@@ -40,7 +40,7 @@
 BOOST_ARCHIVE_OR_WARCHIVE_DECL(bool)
 archive_serializer_map<Archive>::insert(const basic_serializer * bs){
     return boost::serialization::singleton<
- map<Archive>
+ extra_detail::map<Archive>
>::get_mutable_instance().insert(bs);
 }
 
@@ -48,11 +48,11 @@
 BOOST_ARCHIVE_OR_WARCHIVE_DECL(void)
 archive_serializer_map<Archive>::erase(const basic_serializer * bs){
     if(boost::serialization::singleton<
- map<Archive>
+ extra_detail::map<Archive>
>::is_destroyed())
         return;
     boost::serialization::singleton<
- map<Archive>
+ extra_detail::map<Archive>
>::get_mutable_instance().erase(bs);
 }
 
@@ -62,7 +62,7 @@
     const boost::serialization::extended_type_info & eti
 ) {
     return boost::serialization::singleton<
- map<Archive>
+ extra_detail::map<Archive>
>::get_const_instance().find(eti);
 }
 

Modified: branches/release/boost/archive/impl/basic_binary_iarchive.ipp
==============================================================================
--- branches/release/boost/archive/impl/basic_binary_iarchive.ipp (original)
+++ branches/release/boost/archive/impl/basic_binary_iarchive.ipp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -22,6 +22,7 @@
 #endif
 
 #include <boost/detail/workaround.hpp>
+#include <boost/detail/endian.hpp>
 
 #include <boost/archive/basic_binary_iarchive.hpp>
 
@@ -76,7 +77,38 @@
     // make sure the version of the reading archive library can
     // support the format of the archive being read
     library_version_type input_library_version;
- * this->This() >> input_library_version;
+ //* this->This() >> input_library_version;
+ {
+ int v = 0;
+ v = this->This()->m_sb.sbumpc();
+ #if defined(BOOST_LITTLE_ENDIAN)
+ if(v < 6){
+ ;
+ }
+ else
+ if(v < 7){
+ // version 6 - next byte should be zero
+ this->This()->m_sb.sbumpc();
+ }
+ else
+ if(v < 8){
+ int x1;
+ // version 7 = might be followed by zero or some other byte
+ x1 = this->This()->m_sb.sgetc();
+ // it's =a zero, push it back
+ if(0 == x1)
+ this->This()->m_sb.sbumpc();
+ }
+ else{
+ // version 8+ followed by a zero
+ this->This()->m_sb.sbumpc();
+ }
+ #elif defined(BOOST_BIG_ENDIAN)
+ if(v == 0)
+ v = this->This()->m_sb.sbumpc();
+ #endif
+ input_library_version = static_cast<library_version_type>(v);
+ }
     
     #if BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3205))
     this->set_library_version(input_library_version);

Modified: branches/release/boost/archive/iterators/base64_from_binary.hpp
==============================================================================
--- branches/release/boost/archive/iterators/base64_from_binary.hpp (original)
+++ branches/release/boost/archive/iterators/base64_from_binary.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -91,7 +91,7 @@
     template<class T>
     base64_from_binary(BOOST_PFTO_WRAPPER(T) start) :
         super_t(
- Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start))),
+ Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start))),
             detail::from_6_bit<CharType>()
         )
     {}

Modified: branches/release/boost/archive/iterators/binary_from_base64.hpp
==============================================================================
--- branches/release/boost/archive/iterators/binary_from_base64.hpp (original)
+++ branches/release/boost/archive/iterators/binary_from_base64.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -99,7 +99,7 @@
     template<class T>
     binary_from_base64(BOOST_PFTO_WRAPPER(T) start) :
         super_t(
- Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start))),
+ Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start))),
             detail::to_6_bit<CharType>()
         )
     {}

Modified: branches/release/boost/archive/iterators/insert_linebreaks.hpp
==============================================================================
--- branches/release/boost/archive/iterators/insert_linebreaks.hpp (original)
+++ branches/release/boost/archive/iterators/insert_linebreaks.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -84,7 +84,7 @@
     // make composible buy using templated constructor
     template<class T>
     insert_linebreaks(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start)))),
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start)))),
         m_count(0)
     {}
     // intel 7.1 doesn't like default copy constructor

Modified: branches/release/boost/archive/iterators/mb_from_wchar.hpp
==============================================================================
--- branches/release/boost/archive/iterators/mb_from_wchar.hpp (original)
+++ branches/release/boost/archive/iterators/mb_from_wchar.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -115,7 +115,7 @@
     // make composible buy using templated constructor
     template<class T>
     mb_from_wchar(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start)))),
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start)))),
         m_bend(0),
         m_bnext(0),
         m_full(false)

Modified: branches/release/boost/archive/iterators/remove_whitespace.hpp
==============================================================================
--- branches/release/boost/archive/iterators/remove_whitespace.hpp (original)
+++ branches/release/boost/archive/iterators/remove_whitespace.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -154,7 +154,7 @@
     // make composible buy using templated constructor
     template<class T>
     remove_whitespace(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start))))
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start))))
     {}
     // intel 7.1 doesn't like default copy constructor
     remove_whitespace(const remove_whitespace & rhs) :

Modified: branches/release/boost/archive/iterators/transform_width.hpp
==============================================================================
--- branches/release/boost/archive/iterators/transform_width.hpp (original)
+++ branches/release/boost/archive/iterators/transform_width.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -113,7 +113,7 @@
     // make composible buy using templated constructor
     template<class T>
     transform_width(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start)))),
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start)))),
         m_displacement(0),
         m_full(false),
         m_bufferfull(false)

Modified: branches/release/boost/archive/iterators/wchar_from_mb.hpp
==============================================================================
--- branches/release/boost/archive/iterators/wchar_from_mb.hpp (original)
+++ branches/release/boost/archive/iterators/wchar_from_mb.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -90,7 +90,7 @@
     // make composible buy using templated constructor
     template<class T>
     wchar_from_mb(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start)))),
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start)))),
         m_full(false)
     {}
     // intel 7.1 doesn't like default copy constructor

Modified: branches/release/boost/archive/iterators/xml_escape.hpp
==============================================================================
--- branches/release/boost/archive/iterators/xml_escape.hpp (original)
+++ branches/release/boost/archive/iterators/xml_escape.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -44,7 +44,7 @@
 
     template<class T>
     xml_escape(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start))))
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start))))
     {}
     // intel 7.1 doesn't like default copy constructor
     xml_escape(const xml_escape & rhs) :

Modified: branches/release/boost/archive/iterators/xml_unescape.hpp
==============================================================================
--- branches/release/boost/archive/iterators/xml_unescape.hpp (original)
+++ branches/release/boost/archive/iterators/xml_unescape.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -57,7 +57,7 @@
 
     template<class T>
     xml_unescape(BOOST_PFTO_WRAPPER(T) start) :
- super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast<T>(start))))
+ super_t(Base(BOOST_MAKE_PFTO_WRAPPER(static_cast< T >(start))))
     {}
     // intel 7.1 doesn't like default copy constructor
     xml_unescape(const xml_unescape & rhs) :

Modified: branches/release/boost/archive/polymorphic_iarchive.hpp
==============================================================================
--- branches/release/boost/archive/polymorphic_iarchive.hpp (original)
+++ branches/release/boost/archive/polymorphic_iarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -114,7 +114,7 @@
         #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
         const
         #endif
- boost::serialization::nvp<T> & t,
+ boost::serialization::nvp< T > & t,
         int
     ){
         load_start(t.name());

Modified: branches/release/boost/archive/polymorphic_oarchive.hpp
==============================================================================
--- branches/release/boost/archive/polymorphic_oarchive.hpp (original)
+++ branches/release/boost/archive/polymorphic_oarchive.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -116,7 +116,7 @@
                 #ifndef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
                 const
                 #endif
- ::boost::serialization::nvp<T> & t, int
+ ::boost::serialization::nvp< T > & t, int
         ){
         save_start(t.name());
         archive::save(* this->This(), t.const_value());

Modified: branches/release/boost/archive/shared_ptr_helper.hpp
==============================================================================
--- branches/release/boost/archive/shared_ptr_helper.hpp (original)
+++ branches/release/boost/archive/shared_ptr_helper.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -44,7 +44,7 @@
         template<class Archive, class T>
         inline void load(
             Archive & ar,
- boost::shared_ptr<T> &t,
+ boost::shared_ptr< T > &t,
             const unsigned int file_version
         );
     }
@@ -95,7 +95,7 @@
     template<class Archive, class T>
     friend inline void boost::serialization::load(
         Archive & ar,
- boost::shared_ptr<T> &t,
+ boost::shared_ptr< T > &t,
         const unsigned int file_version
     );
 #endif
@@ -130,7 +130,7 @@
         get_object_identifier(T & t){
             return & boost::serialization::singleton<
                 BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance();
         }
     };
@@ -140,27 +140,27 @@
         get_object_identifier(T & t){
             return boost::serialization::singleton<
                 BOOST_DEDUCED_TYPENAME
- boost::serialization::type_info_implementation<T>::type
+ boost::serialization::type_info_implementation< T >::type
>::get_const_instance().get_derived_extended_type_info(t);
         }
     };
 public:
     template<class T>
- void reset(shared_ptr<T> & s, T * t){
+ void reset(shared_ptr< T > & s, T * t){
         if(NULL == t){
             s.reset();
             return;
         }
         const boost::serialization::extended_type_info * this_type
- = & boost::serialization::type_info_implementation<T>::type
+ = & boost::serialization::type_info_implementation< T >::type
                     ::get_const_instance();
 
         // get pointer to the most derived object. This is effectively
         // the object identifern
         typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- is_polymorphic<T>,
- mpl::identity<polymorphic<T> >,
- mpl::identity<non_polymorphic<T> >
+ is_polymorphic< T >,
+ mpl::identity<polymorphic< T > >,
+ mpl::identity<non_polymorphic< T > >
>::type type;
 
         const boost::serialization::extended_type_info * true_type
@@ -192,7 +192,7 @@
             append(sp);
         }
         else{
- s = shared_ptr<T>(
+ s = shared_ptr< T >(
                 r,
                 static_cast<T *>(r.get())
             );

Modified: branches/release/boost/archive/xml_archive_exception.hpp
==============================================================================
--- branches/release/boost/archive/xml_archive_exception.hpp (original)
+++ branches/release/boost/archive/xml_archive_exception.hpp 2010-11-06 12:31:31 EDT (Sat, 06 Nov 2010)
@@ -19,9 +19,10 @@
 #include <exception>
 #include <cassert>
 
-#include <boost/archive/archive_exception.hpp>
+#include <boost/config.hpp>
 #include <boost/preprocessor/empty.hpp>
 #include <boost/archive/detail/decl.hpp>
+#include <boost/archive/archive_exception.hpp>
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
@@ -32,7 +33,7 @@
 // exceptions thrown by xml archives
 //
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) xml_archive_exception :
- public virtual archive_exception
+ public virtual boost::archive::archive_exception
 {
 public:
     typedef enum {


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