Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r57697 - in trunk/boost: archive archive/detail archive/impl archive/iterators serialization
From: ramey_at_[hidden]
Date: 2009-11-16 00:16:58


Author: ramey
Date: 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
New Revision: 57697
URL: http://svn.boost.org/trac/boost/changeset/57697

Log:
Fixed warnings at highest warning level
Properties modified:
   trunk/boost/archive/ (props changed)
   trunk/boost/serialization/ (props changed)
Text files modified:
   trunk/boost/archive/basic_archive.hpp | 19 +++++++++++--------
   trunk/boost/archive/basic_binary_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/basic_binary_iprimitive.hpp | 10 ++++++----
   trunk/boost/archive/basic_binary_oarchive.hpp | 15 ++++++++++++++-
   trunk/boost/archive/basic_binary_oprimitive.hpp | 7 ++++---
   trunk/boost/archive/basic_streambuf_locale_saver.hpp | 15 ++++++++++++++-
   trunk/boost/archive/basic_text_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/basic_text_oarchive.hpp | 9 +++++++++
   trunk/boost/archive/basic_text_oprimitive.hpp | 19 ++++++++++++++++++-
   trunk/boost/archive/basic_xml_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/basic_xml_oarchive.hpp | 9 +++++++++
   trunk/boost/archive/binary_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/binary_iarchive_impl.hpp | 9 +++++++++
   trunk/boost/archive/binary_oarchive.hpp | 10 ++++++++++
   trunk/boost/archive/binary_oarchive_impl.hpp | 10 ++++++++++
   trunk/boost/archive/codecvt_null.hpp | 8 ++++++++
   trunk/boost/archive/detail/basic_iarchive.hpp | 5 ++++-
   trunk/boost/archive/detail/basic_iserializer.hpp | 10 +++++++++-
   trunk/boost/archive/detail/basic_oarchive.hpp | 7 +++++--
   trunk/boost/archive/detail/basic_oserializer.hpp | 11 ++++++++++-
   trunk/boost/archive/detail/basic_pointer_iserializer.hpp | 11 ++++++++++-
   trunk/boost/archive/detail/basic_pointer_oserializer.hpp | 14 ++++++++++++--
   trunk/boost/archive/detail/basic_serializer.hpp | 9 +++++++++
   trunk/boost/archive/detail/check.hpp | 10 +++++-----
   trunk/boost/archive/detail/common_iarchive.hpp | 11 +++++++++++
   trunk/boost/archive/detail/common_oarchive.hpp | 11 +++++++++++
   trunk/boost/archive/detail/iserializer.hpp | 20 +++++++++++++++++++-
   trunk/boost/archive/detail/oserializer.hpp | 24 +++++++++++++++++++++---
   trunk/boost/archive/detail/polymorphic_iarchive_route.hpp | 13 ++++++++++---
   trunk/boost/archive/detail/polymorphic_oarchive_route.hpp | 13 ++++++++++---
   trunk/boost/archive/impl/archive_serializer_map.ipp | 9 +++++++++
   trunk/boost/archive/iterators/escape.hpp | 2 +-
   trunk/boost/archive/iterators/istream_iterator.hpp | 2 +-
   trunk/boost/archive/iterators/unescape.hpp | 11 ++++-------
   trunk/boost/archive/iterators/xml_unescape.hpp | 16 +++++++++++++---
   trunk/boost/archive/polymorphic_binary_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/polymorphic_text_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/polymorphic_text_wiarchive.hpp | 9 +++++++++
   trunk/boost/archive/polymorphic_xml_iarchive.hpp | 9 +++++++++
   trunk/boost/archive/text_iarchive.hpp | 18 ++++++++++++++++++
   trunk/boost/archive/text_oarchive.hpp | 10 +++++++++-
   trunk/boost/archive/text_wiarchive.hpp | 18 ++++++++++++++++++
   trunk/boost/archive/text_woarchive.hpp | 13 +++++++++++--
   trunk/boost/archive/xml_iarchive.hpp | 18 ++++++++++++++++++
   trunk/boost/archive/xml_oarchive.hpp | 9 +++++++++
   trunk/boost/archive/xml_wiarchive.hpp | 19 +++++++++++++++++++
   trunk/boost/archive/xml_woarchive.hpp | 9 +++++++++
   trunk/boost/serialization/array.hpp | 34 +++++++++++++++++++++-------------
   trunk/boost/serialization/binary_object.hpp | 9 +++++++--
   trunk/boost/serialization/extended_type_info_no_rtti.hpp | 2 +-
   trunk/boost/serialization/extended_type_info_typeid.hpp | 5 ++++-
   trunk/boost/serialization/shared_ptr.hpp | 23 +++++++++++++++++++----
   trunk/boost/serialization/singleton.hpp | 13 ++++++++++++-
   trunk/boost/serialization/variant.hpp | 4 +++-
   trunk/boost/serialization/void_cast.hpp | 9 +++++++++
   55 files changed, 555 insertions(+), 79 deletions(-)

Modified: trunk/boost/archive/basic_archive.hpp
==============================================================================
--- trunk/boost/archive/basic_archive.hpp (original)
+++ trunk/boost/archive/basic_archive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -17,8 +17,9 @@
 // See http://www.boost.org for updates, documentation, and revision history.
 
 #include <boost/config.hpp>
-#include <boost/serialization/strong_typedef.hpp>
+#include <boost/cstdint.hpp>
 #include <boost/noncopyable.hpp>
+#include <boost/serialization/strong_typedef.hpp>
 
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
@@ -26,12 +27,12 @@
 namespace boost {
 namespace archive {
 
-BOOST_STRONG_TYPEDEF(unsigned int, version_type)
-BOOST_STRONG_TYPEDEF(int, class_id_type)
-BOOST_STRONG_TYPEDEF(int, class_id_optional_type)
-BOOST_STRONG_TYPEDEF(int, class_id_reference_type)
-BOOST_STRONG_TYPEDEF(unsigned int, object_id_type)
-BOOST_STRONG_TYPEDEF(unsigned int, object_reference_type)
+BOOST_STRONG_TYPEDEF(boost::int_least16_t, version_type)
+BOOST_STRONG_TYPEDEF(boost::int_least16_t, class_id_type)
+BOOST_STRONG_TYPEDEF(boost::int_least16_t, class_id_optional_type)
+BOOST_STRONG_TYPEDEF(boost::int_least16_t, class_id_reference_type)
+BOOST_STRONG_TYPEDEF(boost::uint_least32_t, object_id_type)
+BOOST_STRONG_TYPEDEF(boost::uint_least32_t, object_reference_type)
 
 struct tracking_type {
 // typedef bool value_type;
@@ -64,7 +65,9 @@
     }
 };
 
-struct class_name_type : private boost::noncopyable {
+struct class_name_type :
+ private boost::noncopyable
+{
     char *t;
     operator const char * & () const {
         return const_cast<const char * &>(t);

Modified: trunk/boost/archive/basic_binary_iarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_binary_iarchive.hpp (original)
+++ trunk/boost/archive/basic_binary_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -31,6 +31,11 @@
 #include <boost/serialization/collection_size_type.hpp>
 #include <boost/serialization/string.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
 namespace boost {
@@ -127,6 +132,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_BINARY_IARCHIVE_HPP

Modified: trunk/boost/archive/basic_binary_iprimitive.hpp
==============================================================================
--- trunk/boost/archive/basic_binary_iprimitive.hpp (original)
+++ trunk/boost/archive/basic_binary_iprimitive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -46,8 +46,8 @@
 #include <boost/cstdint.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <boost/serialization/throw_exception.hpp>
-//#include <boost/limits.hpp>
-//#include <boost/io/ios_state.hpp>
+#include <boost/integer.hpp>
+#include <boost/integer_traits.hpp>
 
 #include <boost/archive/basic_streambuf_locale_saver.hpp>
 #include <boost/archive/archive_exception.hpp>
@@ -151,7 +151,8 @@
     std::size_t count
 ){
     // note: an optimizer should eliminate the following for char files
- std::streamsize s = count / sizeof(Elem);
+ assert(count / sizeof(Elem) <= boost::integer_traits<std::streamsize>::const_max);
+ std::streamsize s = static_cast<std::streamsize>(count / sizeof(Elem));
     std::streamsize scount = m_sb.sgetn(
         static_cast<Elem *>(address),
         s
@@ -161,7 +162,8 @@
             archive_exception(archive_exception::stream_error)
         );
     // note: an optimizer should eliminate the following for char files
- s = count % sizeof(Elem);
+ assert(count % sizeof(Elem) <= boost::integer_traits<std::streamsize>::const_max);
+ s = static_cast<std::streamsize>(count % sizeof(Elem));
     if(0 < s){
 // if(is.fail())
 // boost::serialization::throw_exception(

Modified: trunk/boost/archive/basic_binary_oarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_binary_oarchive.hpp (original)
+++ trunk/boost/archive/basic_binary_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -35,6 +35,13 @@
 #include <boost/serialization/string.hpp>
 #include <boost/serialization/collection_size_type.hpp>
 
+#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
+
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -86,7 +93,7 @@
     void save_override(const class_id_reference_type & t, int){
         // upto 32K classes
         assert(t.t <= boost::integer_traits<boost::int_least16_t>::const_max);
- const boost::uint_least16_t x = t.t;
+ const boost::int_least16_t x = t.t;
         * this->This() << x;
     }
     void save_override(const object_id_type & t, int){
@@ -129,4 +136,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
+#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
+
 #endif // BOOST_ARCHIVE_BASIC_BINARY_OARCHIVE_HPP

Modified: trunk/boost/archive/basic_binary_oprimitive.hpp
==============================================================================
--- trunk/boost/archive/basic_binary_oprimitive.hpp (original)
+++ trunk/boost/archive/basic_binary_oprimitive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -38,8 +38,8 @@
 #endif
 
 #include <boost/cstdint.hpp>
-//#include <boost/limits.hpp>
-//#include <boost/io/ios_state.hpp>
+#include <boost/integer.hpp>
+#include <boost/integer_traits.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <boost/serialization/throw_exception.hpp>
 
@@ -160,9 +160,10 @@
     // figure number of elements to output - round up
     count = ( count + sizeof(Elem) - 1)
         / sizeof(Elem);
+ assert(count <= boost::integer_traits<std::streamsize>::const_max);
     std::streamsize scount = m_sb.sputn(
         static_cast<const Elem *>(address),
- count
+ static_cast<std::streamsize>(count)
     );
     if(count != static_cast<std::size_t>(scount))
         boost::serialization::throw_exception(

Modified: trunk/boost/archive/basic_streambuf_locale_saver.hpp
==============================================================================
--- trunk/boost/archive/basic_streambuf_locale_saver.hpp (original)
+++ trunk/boost/archive/basic_streambuf_locale_saver.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -29,11 +29,20 @@
 #include <locale> // for std::locale
 #include <streambuf> // for std::basic_streambuf
 
+#include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
+
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost{
 namespace archive{
 
 template < typename Ch, class Tr >
-class basic_streambuf_locale_saver
+class basic_streambuf_locale_saver :
+ private boost::noncopyable
 {
 public:
     typedef ::std::basic_streambuf<Ch, Tr> state_type;
@@ -56,5 +65,9 @@
 } // archive
 } // boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_NO_STD_LOCALE
 #endif // BOOST_ARCHIVE_BASIC_STREAMBUF_LOCALE_SAVER_HPP

Modified: trunk/boost/archive/basic_text_iarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_text_iarchive.hpp (original)
+++ trunk/boost/archive/basic_text_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -33,6 +33,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -79,6 +84,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_TEXT_IARCHIVE_HPP

Modified: trunk/boost/archive/basic_text_oarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_text_oarchive.hpp (original)
+++ trunk/boost/archive/basic_text_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -34,6 +34,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -129,6 +134,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_TEXT_OARCHIVE_HPP

Modified: trunk/boost/archive/basic_text_oprimitive.hpp
==============================================================================
--- trunk/boost/archive/basic_text_oprimitive.hpp (original)
+++ trunk/boost/archive/basic_text_oprimitive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -29,6 +29,7 @@
 #include <boost/config/no_tr1/cmath.hpp> // isnan
 #include <cassert>
 #include <cstddef> // size_t
+#include <boost/serialization/collection_size_type.hpp>
 
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
@@ -136,6 +137,22 @@
         os << static_cast<int>(t);
     }
     #endif
+ void save(const std::size_t t)
+ {
+ if(os.fail())
+ boost::serialization::throw_exception(
+ archive_exception(archive_exception::stream_error)
+ );
+ os << static_cast<std::streamsize>(t);
+ }
+ void save(const boost::serialization::collection_size_type t)
+ {
+ if(os.fail())
+ boost::serialization::throw_exception(
+ archive_exception(archive_exception::stream_error)
+ );
+ os << static_cast<std::streamsize>(t);
+ }
     void save(const float t)
     {
         // must be a user mistake - can't serialize un-initialized data
@@ -162,7 +179,7 @@
     ~basic_text_oprimitive();
 public:
     // unformatted append of one character
- void put(int c){
+ void put(BOOST_DEDUCED_TYPENAME OStream::char_type c){
         if(os.fail())
             boost::serialization::throw_exception(
                 archive_exception(archive_exception::stream_error)

Modified: trunk/boost/archive/basic_xml_iarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_xml_iarchive.hpp (original)
+++ trunk/boost/archive/basic_xml_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -29,6 +29,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -113,6 +118,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_XML_IARCHIVE_HPP

Modified: trunk/boost/archive/basic_xml_oarchive.hpp
==============================================================================
--- trunk/boost/archive/basic_xml_oarchive.hpp (original)
+++ trunk/boost/archive/basic_xml_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -28,6 +28,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -131,6 +136,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_XML_OARCHIVE_HPP

Modified: trunk/boost/archive/binary_iarchive.hpp
==============================================================================
--- trunk/boost/archive/binary_iarchive.hpp (original)
+++ trunk/boost/archive/binary_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -20,6 +20,11 @@
 #include <boost/archive/binary_iarchive_impl.hpp>
 #include <boost/archive/detail/register_archive.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -91,4 +96,8 @@
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_iarchive)
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(boost::archive::binary_iarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_BINARY_IARCHIVE_HPP

Modified: trunk/boost/archive/binary_iarchive_impl.hpp
==============================================================================
--- trunk/boost/archive/binary_iarchive_impl.hpp (original)
+++ trunk/boost/archive/binary_iarchive_impl.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -21,6 +21,11 @@
 #include <boost/archive/basic_binary_iprimitive.hpp>
 #include <boost/archive/basic_binary_iarchive.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -84,4 +89,8 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_BINARY_IARCHIVE_IMPL_HPP

Modified: trunk/boost/archive/binary_oarchive.hpp
==============================================================================
--- trunk/boost/archive/binary_oarchive.hpp (original)
+++ trunk/boost/archive/binary_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -17,9 +17,15 @@
 // See http://www.boost.org for updates, documentation, and revision history.
 
 #include <ostream>
+#include <boost/config.hpp>
 #include <boost/archive/binary_oarchive_impl.hpp>
 #include <boost/archive/detail/register_archive.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -53,4 +59,8 @@
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::binary_oarchive)
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(boost::archive::binary_oarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_BINARY_OARCHIVE_HPP

Modified: trunk/boost/archive/binary_oarchive_impl.hpp
==============================================================================
--- trunk/boost/archive/binary_oarchive_impl.hpp (original)
+++ trunk/boost/archive/binary_oarchive_impl.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -17,10 +17,16 @@
 // See http://www.boost.org for updates, documentation, and revision history.
 
 #include <ostream>
+#include <boost/config.hpp>
 #include <boost/serialization/pfto.hpp>
 #include <boost/archive/basic_binary_oprimitive.hpp>
 #include <boost/archive/basic_binary_oarchive.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -84,4 +90,8 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_BINARY_OARCHIVE_IMPL_HPP

Modified: trunk/boost/archive/codecvt_null.hpp
==============================================================================
--- trunk/boost/archive/codecvt_null.hpp (original)
+++ trunk/boost/archive/codecvt_null.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -35,6 +35,11 @@
 } // namespace
 #endif
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -87,6 +92,9 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
 #include <boost/archive/detail/abi_suffix.hpp> // pop pragmas
 
 #endif //BOOST_ARCHIVE_CODECVT_NULL_HPP

Modified: trunk/boost/archive/detail/basic_iarchive.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_iarchive.hpp (original)
+++ trunk/boost/archive/detail/basic_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -20,6 +20,8 @@
 // #include <boost/scoped_ptr.hpp>
 
 #include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
+
 #include <boost/type_traits/broken_compiler_spec.hpp>
 #include <boost/serialization/tracking_enum.hpp>
 #include <boost/archive/basic_archive.hpp>
@@ -39,7 +41,8 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer;
 //////////////////////////////////////////////////////////////////////
 // class basic_iarchive - read serialized objects from a input stream
-class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive
+class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iarchive :
+ private boost::noncopyable
 {
     friend class basic_iarchive_impl;
     // hide implementation of this class to minimize header conclusion

Modified: trunk/boost/archive/detail/basic_iserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_iserializer.hpp (original)
+++ trunk/boost/archive/detail/basic_iserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -24,8 +24,12 @@
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
-namespace boost {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
 
+namespace boost {
 namespace serialization {
     class extended_type_info;
 } // namespace serialization
@@ -81,6 +85,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_DETAIL_BASIC_ISERIALIZER_HPP

Modified: trunk/boost/archive/detail/basic_oarchive.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_oarchive.hpp (original)
+++ trunk/boost/archive/detail/basic_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -16,8 +16,10 @@
 
 // See http://www.boost.org for updates, documentation, and revision history.
 
-#include <boost/config.hpp>
 #include <cstddef> // NULL
+#include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
+
 #include <boost/type_traits/broken_compiler_spec.hpp>
 
 // can't use this - much as I'd like to as borland doesn't support it
@@ -41,7 +43,8 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer;
 //////////////////////////////////////////////////////////////////////
 // class basic_oarchive - write serialized objects to an output stream
-class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive
+class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oarchive :
+ private boost::noncopyable
 {
     friend class basic_oarchive_impl;
     // hide implementation of this class to minimize header conclusion

Modified: trunk/boost/archive/detail/basic_oserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_oserializer.hpp (original)
+++ trunk/boost/archive/detail/basic_oserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -18,14 +18,19 @@
 
 #include <cstddef> // NULL
 #include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
 
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/detail/basic_serializer.hpp>
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
-namespace boost {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
 
+namespace boost {
 namespace serialization {
     class extended_type_info;
 } // namespace serialization
@@ -78,6 +83,10 @@
 } // namespace serialization
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_SERIALIZATION_BASIC_OSERIALIZER_HPP

Modified: trunk/boost/archive/detail/basic_pointer_iserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_pointer_iserializer.hpp (original)
+++ trunk/boost/archive/detail/basic_pointer_iserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -17,13 +17,18 @@
 
 // See http://www.boost.org for updates, documentation, and revision history.
 #include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/detail/basic_serializer.hpp>
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
-namespace boost {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
 
+namespace boost {
 namespace serialization {
     class extended_type_info;
 } // namespace serialization
@@ -59,6 +64,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_POINTER_ISERIALIZER_HPP

Modified: trunk/boost/archive/detail/basic_pointer_oserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_pointer_oserializer.hpp (original)
+++ trunk/boost/archive/detail/basic_pointer_oserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -17,13 +17,18 @@
 
 // See http://www.boost.org for updates, documentation, and revision history.
 #include <boost/config.hpp>
+#include <boost/noncopyable.hpp>
 #include <boost/archive/detail/auto_link_archive.hpp>
 #include <boost/archive/detail/basic_serializer.hpp>
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
-namespace boost {
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
 
+namespace boost {
 namespace serialization {
     class extended_type_info;
 } // namespace serialization
@@ -35,7 +40,8 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer;
 
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer :
- public basic_serializer {
+ public basic_serializer
+{
 protected:
     explicit basic_pointer_oserializer(
         const boost::serialization::extended_type_info & type_
@@ -57,6 +63,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_BASIC_POINTER_OSERIALIZER_HPP

Modified: trunk/boost/archive/detail/basic_serializer.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_serializer.hpp (original)
+++ trunk/boost/archive/detail/basic_serializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -23,6 +23,11 @@
 #include <boost/config.hpp>
 #include <boost/serialization/extended_type_info.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 namespace detail {
@@ -67,4 +72,8 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_BASIC_SERIALIZER_HPP

Modified: trunk/boost/archive/detail/check.hpp
==============================================================================
--- trunk/boost/archive/detail/check.hpp (original)
+++ trunk/boost/archive/detail/check.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -58,7 +58,7 @@
     // trap attempts to serialize objects marked
     // not_serializable
     BOOST_STATIC_ASSERT(typex::value);
-};
+}
 
 template<class T>
 void inline check_object_versioning(){
@@ -76,7 +76,7 @@
     // trap attempts to serialize with objects that don't
     // save class information in the archive with versioning.
     BOOST_STATIC_ASSERT(typex::value);
-};
+}
 
 template<class T>
 void inline check_object_tracking(){
@@ -96,7 +96,7 @@
     // for motivation for this checking.
 
     BOOST_STATIC_WARNING(typex::value);
-};
+}
 
 // checks for pointers
 
@@ -146,7 +146,7 @@
     // serializing an object of a type marked "track_never" through a pointer
     // could result in creating more objects than were saved!
     BOOST_STATIC_WARNING(typex::value);
-};
+}
 
 template<class T>
 void inline check_const_loading(){
@@ -160,7 +160,7 @@
     // cannot load data into a "const" object unless it's a
     // wrapper around some other non-const object.
     BOOST_STATIC_ASSERT(typex::value);
-};
+}
 
 } // detail
 } // archive

Modified: trunk/boost/archive/detail/common_iarchive.hpp
==============================================================================
--- trunk/boost/archive/detail/common_iarchive.hpp (original)
+++ trunk/boost/archive/detail/common_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -16,12 +16,19 @@
 
 // See http://www.boost.org for updates, documentation, and revision history.
 
+#include <boost/config.hpp>
+
 #include <boost/archive/detail/basic_iarchive.hpp>
 #include <boost/archive/detail/basic_pointer_iserializer.hpp>
 #include <boost/archive/detail/interface_iarchive.hpp>
 #include <boost/archive/detail/archive_serializer_map.hpp>
 #include <boost/serialization/singleton.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 namespace detail {
@@ -82,5 +89,9 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_DETAIL_COMMON_IARCHIVE_HPP
 

Modified: trunk/boost/archive/detail/common_oarchive.hpp
==============================================================================
--- trunk/boost/archive/detail/common_oarchive.hpp (original)
+++ trunk/boost/archive/detail/common_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -16,9 +16,16 @@
 
 // See http://www.boost.org for updates, documentation, and revision history.
 
+#include <boost/config.hpp>
+
 #include <boost/archive/detail/basic_oarchive.hpp>
 #include <boost/archive/detail/interface_oarchive.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 namespace detail {
@@ -73,4 +80,8 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_DETAIL_COMMON_OARCHIVE_HPP

Modified: trunk/boost/archive/detail/iserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/iserializer.hpp (original)
+++ trunk/boost/archive/detail/iserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -110,6 +110,11 @@
 
 namespace detail {
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class Archive, class T>
 class iserializer : public basic_iserializer
 {
@@ -153,6 +158,10 @@
     virtual ~iserializer(){};
 };
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
 template<class Archive, class T>
 BOOST_DLLEXPORT void iserializer<Archive, T>::load_object_data(
     basic_iarchive & ar,
@@ -177,6 +186,11 @@
     );
 }
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class Archive, class T>
 class pointer_iserializer :
     public basic_pointer_iserializer
@@ -198,6 +212,10 @@
     ~pointer_iserializer();
 };
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
 // note trick to be sure that operator new is using class specific
 // version if such exists. Due to Peter Dimov.
 // note: the following fails if T has no default constructor.
@@ -471,7 +489,7 @@
     }
 
     template<class T>
- static void load(Archive &ar, T & t){
+ static void load(Archive & /* ar */ , T & /* t */){
         check_pointer_level<T>();
         check_pointer_tracking<T>();
     }

Modified: trunk/boost/archive/detail/oserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/oserializer.hpp (original)
+++ trunk/boost/archive/detail/oserializer.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -91,6 +91,11 @@
 
 namespace detail {
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class Archive, class T>
 class oserializer : public basic_oserializer
 {
@@ -128,6 +133,10 @@
     virtual ~oserializer(){}
 };
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
 template<class Archive, class T>
 BOOST_DLLEXPORT void oserializer<Archive, T>::save_object_data(
     basic_oarchive & ar,
@@ -143,6 +152,11 @@
     );
 }
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class Archive, class T>
 class pointer_oserializer :
     public basic_pointer_oserializer
@@ -163,6 +177,10 @@
     ~pointer_oserializer();
 };
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
 template<class Archive, class T>
 BOOST_DLLEXPORT void pointer_oserializer<Archive, T>::save_object_ptr(
     basic_oarchive & ar,
@@ -288,13 +306,13 @@
> > >::type typex;
         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>();
         invoke(ar, const_cast<const T &>(t));
- };
+ }
 };
 
 template<class Archive>
@@ -453,7 +471,7 @@
             return;
         }
         save(ar, * t);
- };
+ }
 };
 
 template<class Archive>

Modified: trunk/boost/archive/detail/polymorphic_iarchive_route.hpp
==============================================================================
--- trunk/boost/archive/detail/polymorphic_iarchive_route.hpp (original)
+++ trunk/boost/archive/detail/polymorphic_iarchive_route.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -27,7 +27,6 @@
 } // namespace std
 #endif
 
-#include <boost/noncopyable.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/archive/polymorphic_iarchive.hpp>
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
@@ -42,13 +41,17 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_iserializer;
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_iserializer;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class ArchiveImplementation>
 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.
- public /*protected*/ ArchiveImplementation,
- private boost::noncopyable
+ public /*protected*/ ArchiveImplementation
 {
 private:
     // these are used by the serialization library.
@@ -188,6 +191,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_DETAIL_POLYMORPHIC_IARCHIVE_DISPATCH_HPP

Modified: trunk/boost/archive/detail/polymorphic_oarchive_route.hpp
==============================================================================
--- trunk/boost/archive/detail/polymorphic_oarchive_route.hpp (original)
+++ trunk/boost/archive/detail/polymorphic_oarchive_route.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -18,7 +18,6 @@
 
 #include <string>
 #include <ostream>
-#include <boost/noncopyable.hpp>
 #include <boost/cstdint.hpp>
 #include <cstddef> // size_t
 
@@ -42,13 +41,17 @@
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_oserializer;
 class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_pointer_oserializer;
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 template<class ArchiveImplementation>
 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.
- public /*protected*/ ArchiveImplementation,
- private boost::noncopyable
+ public /*protected*/ ArchiveImplementation
 {
 private:
     // these are used by the serialization library.
@@ -179,6 +182,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_DETAIL_POLYMORPHIC_OARCHIVE_DISPATCH_HPP

Modified: trunk/boost/archive/impl/archive_serializer_map.ipp
==============================================================================
--- trunk/boost/archive/impl/archive_serializer_map.ipp (original)
+++ trunk/boost/archive/impl/archive_serializer_map.ipp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -21,12 +21,21 @@
 namespace archive {
 namespace detail {
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace { // anon
     template<class Archive>
     class map : public basic_serializer_map
     {};
 }
 
+#ifdef BOOST_MSVC
+# pragma warning(pop)
+#endif
+
 template<class Archive>
 BOOST_ARCHIVE_OR_WARCHIVE_DECL(bool)
 archive_serializer_map<Archive>::insert(const basic_serializer * bs){

Modified: trunk/boost/archive/iterators/escape.hpp
==============================================================================
--- trunk/boost/archive/iterators/escape.hpp (original)
+++ trunk/boost/archive/iterators/escape.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -97,7 +97,7 @@
     const base_value_type *m_bnext;
     const base_value_type *m_bend;
     bool m_full;
- BOOST_DEDUCED_TYPENAME boost::iterator_value<Base>::type m_current_value;
+ base_value_type m_current_value;
 public:
     escape(Base base) :
         super_t(base),

Modified: trunk/boost/archive/iterators/istream_iterator.hpp
==============================================================================
--- trunk/boost/archive/iterators/istream_iterator.hpp (original)
+++ trunk/boost/archive/iterators/istream_iterator.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -61,7 +61,7 @@
 
     void increment(){
         if(NULL != m_istream){
- m_current_value = m_istream->get();
+ m_current_value = static_cast<Elem>(m_istream->get());
             if(! m_istream->good()){
                 const_cast<this_t *>(this)->m_istream = NULL;
             }

Modified: trunk/boost/archive/iterators/unescape.hpp
==============================================================================
--- trunk/boost/archive/iterators/unescape.hpp (original)
+++ trunk/boost/archive/iterators/unescape.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -50,13 +50,11 @@
> super_t;
 
     typedef unescape<Derived, Base> this_t;
- typedef BOOST_DEDUCED_TYPENAME super_t::reference reference_type;
 public:
- // gcc 3.4.1 - linux required that this be public
- typedef BOOST_DEDUCED_TYPENAME super_t::value_type value_type;
+ typedef BOOST_DEDUCED_TYPENAME this_t::value_type value_type;
+ typedef BOOST_DEDUCED_TYPENAME this_t::reference reference;
 private:
-
- reference_type dereference_impl() {
+ value_type dereference_impl() {
         if(! m_full){
             m_current_value = static_cast<Derived *>(this)->drain();
             m_full = true;
@@ -64,11 +62,10 @@
         return m_current_value;
     }
 
- reference_type dereference() const {
+ reference dereference() const {
         return const_cast<this_t *>(this)->dereference_impl();
     }
 
- // value_type is const char - can't be const fix later
     value_type m_current_value;
     bool m_full;
 

Modified: trunk/boost/archive/iterators/xml_unescape.hpp
==============================================================================
--- trunk/boost/archive/iterators/xml_unescape.hpp (original)
+++ trunk/boost/archive/iterators/xml_unescape.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -19,6 +19,7 @@
 #include <cassert>
 
 #include <boost/config.hpp> // for BOOST_DEDUCED_TYPENAME
+
 #include <boost/serialization/throw_exception.hpp>
 #include <boost/serialization/pfto.hpp>
 
@@ -44,8 +45,15 @@
         return unescape<xml_unescape<Base>, Base>::dereference();
     }
 public:
+ // workaround msvc 7.1 ICU crash
+ #if defined(BOOST_MSVC)
+ typedef int value_type;
+ #else
+ typedef BOOST_DEDUCED_TYPENAME this_t::value_type value_type;
+ #endif
+
     void drain_residue(const char *literal);
- int drain();
+ value_type drain();
 
     template<class T>
     xml_unescape(BOOST_PFTO_WRAPPER(T) start) :
@@ -75,8 +83,10 @@
 // iterator refenence which would make subsequent iterator comparisons
 // incorrect and thereby break the composiblity of iterators.
 template<class Base>
-int xml_unescape<Base>::drain(){
- int retval = * this->base_reference();
+BOOST_DEDUCED_TYPENAME xml_unescape<Base>::value_type
+//int
+xml_unescape<Base>::drain(){
+ value_type retval = * this->base_reference();
     if('&' != retval){
         return retval;
     }

Modified: trunk/boost/archive/polymorphic_binary_iarchive.hpp
==============================================================================
--- trunk/boost/archive/polymorphic_binary_iarchive.hpp (original)
+++ trunk/boost/archive/polymorphic_binary_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -20,6 +20,11 @@
 #include <boost/archive/binary_iarchive.hpp>
 #include <boost/archive/detail/polymorphic_iarchive_route.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -36,6 +41,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(
     boost::archive::polymorphic_binary_iarchive

Modified: trunk/boost/archive/polymorphic_text_iarchive.hpp
==============================================================================
--- trunk/boost/archive/polymorphic_text_iarchive.hpp (original)
+++ trunk/boost/archive/polymorphic_text_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -20,6 +20,11 @@
 #include <boost/archive/text_iarchive.hpp>
 #include <boost/archive/detail/polymorphic_iarchive_route.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -36,6 +41,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(
     boost::archive::polymorphic_text_iarchive

Modified: trunk/boost/archive/polymorphic_text_wiarchive.hpp
==============================================================================
--- trunk/boost/archive/polymorphic_text_wiarchive.hpp (original)
+++ trunk/boost/archive/polymorphic_text_wiarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -24,6 +24,11 @@
 #include <boost/archive/text_wiarchive.hpp>
 #include <boost/archive/detail/polymorphic_iarchive_route.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -40,6 +45,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(
     boost::archive::polymorphic_text_wiarchive

Modified: trunk/boost/archive/polymorphic_xml_iarchive.hpp
==============================================================================
--- trunk/boost/archive/polymorphic_xml_iarchive.hpp (original)
+++ trunk/boost/archive/polymorphic_xml_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -20,6 +20,11 @@
 #include <boost/archive/xml_iarchive.hpp>
 #include <boost/archive/detail/polymorphic_iarchive_route.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -36,6 +41,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(
     boost::archive::polymorphic_xml_iarchive

Modified: trunk/boost/archive/text_iarchive.hpp
==============================================================================
--- trunk/boost/archive/text_iarchive.hpp (original)
+++ trunk/boost/archive/text_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -26,6 +26,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -94,6 +99,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 // note special treatment of shared_ptr. This type needs a special
@@ -102,6 +111,11 @@
 // special esteem in the boost library - we included it here by default.
 #include <boost/archive/shared_ptr_helper.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -123,4 +137,8 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_iarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_TEXT_IARCHIVE_HPP

Modified: trunk/boost/archive/text_oarchive.hpp
==============================================================================
--- trunk/boost/archive/text_oarchive.hpp (original)
+++ trunk/boost/archive/text_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -33,6 +33,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -82,7 +87,6 @@
     public text_oarchive_impl<text_oarchive>
 {
 public:
-
     text_oarchive(std::ostream & os_, unsigned int flags = 0) :
         // note: added _ to suppress useless gcc warning
         text_oarchive_impl<text_oarchive>(os_, flags)
@@ -98,6 +102,10 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_oarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_TEXT_OARCHIVE_HPP

Modified: trunk/boost/archive/text_wiarchive.hpp
==============================================================================
--- trunk/boost/archive/text_wiarchive.hpp (original)
+++ trunk/boost/archive/text_wiarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -30,6 +30,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -91,6 +96,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 // note special treatment of shared_ptr. This type needs a special
@@ -99,6 +108,11 @@
 // special esteem in the boost library - we included it here by default.
 #include <boost/archive/shared_ptr_helper.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -119,5 +133,9 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_wiarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_NO_STD_WSTREAMBUF
 #endif // BOOST_ARCHIVE_TEXT_WIARCHIVE_HPP

Modified: trunk/boost/archive/text_woarchive.hpp
==============================================================================
--- trunk/boost/archive/text_woarchive.hpp (original)
+++ trunk/boost/archive/text_woarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -38,6 +38,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -83,7 +88,7 @@
     }
 public:
     void save_binary(const void *address, std::size_t count){
- put(L'\n');
+ put(static_cast<wchar_t>('\n'));
         this->end_preamble();
         #if ! defined(__MWERKS__)
         this->basic_text_oprimitive<std::wostream>::save_binary(
@@ -93,7 +98,7 @@
             address,
             count
         );
- put(L'\n');
+ put(static_cast<wchar_t>('\n'));
         this->delimiter = this->none;
     }
 
@@ -123,6 +128,10 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::text_woarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_NO_STD_WSTREAMBUF

Modified: trunk/boost/archive/xml_iarchive.hpp
==============================================================================
--- trunk/boost/archive/xml_iarchive.hpp (original)
+++ trunk/boost/archive/xml_iarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -26,6 +26,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -102,6 +107,10 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 // note special treatment of shared_ptr. This type needs a special
@@ -110,6 +119,11 @@
 // special esteem in the boost library - we included it here by default.
 #include <boost/archive/shared_ptr_helper.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -130,4 +144,8 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_iarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_ARCHIVE_XML_IARCHIVE_HPP

Modified: trunk/boost/archive/xml_oarchive.hpp
==============================================================================
--- trunk/boost/archive/xml_oarchive.hpp (original)
+++ trunk/boost/archive/xml_oarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -33,6 +33,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -110,6 +115,10 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_oarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_ARCHIVE_XML_OARCHIVE_HPP

Modified: trunk/boost/archive/xml_wiarchive.hpp
==============================================================================
--- trunk/boost/archive/xml_wiarchive.hpp (original)
+++ trunk/boost/archive/xml_wiarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -31,6 +31,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -106,6 +111,11 @@
 } // namespace archive
 } // namespace boost
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 // note special treatment of shared_ptr. This type needs a special
@@ -114,6 +124,11 @@
 // special esteem in the boost library - we included it here by default.
 #include <boost/archive/shared_ptr_helper.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -134,5 +149,9 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_wiarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_NO_STD_WSTREAMBUF
 #endif // BOOST_ARCHIVE_XML_WIARCHIVE_HPP

Modified: trunk/boost/archive/xml_woarchive.hpp
==============================================================================
--- trunk/boost/archive/xml_woarchive.hpp (original)
+++ trunk/boost/archive/xml_woarchive.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -37,6 +37,11 @@
 
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace archive {
 
@@ -124,6 +129,10 @@
 // required by export
 BOOST_SERIALIZATION_REGISTER_ARCHIVE(boost::archive::xml_woarchive)
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
 
 #endif // BOOST_NO_STD_WSTREAMBUF

Modified: trunk/boost/serialization/array.hpp
==============================================================================
--- trunk/boost/serialization/array.hpp (original)
+++ trunk/boost/serialization/array.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -6,16 +6,7 @@
 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/serialization/nvp.hpp>
-#include <boost/serialization/split_member.hpp>
-#include <boost/serialization/wrapper.hpp>
-#include <boost/mpl/always.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/array.hpp>
 #include <iostream>
-
 #include <cstddef> // std::size_t
 #include <cstddef>
 #include <boost/config.hpp> // msvc 6.0 needs this for warning suppression
@@ -25,6 +16,15 @@
 } // namespace std
 #endif
 
+#include <boost/serialization/nvp.hpp>
+#include <boost/serialization/split_member.hpp>
+#include <boost/serialization/wrapper.hpp>
+#include <boost/mpl/always.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/array.hpp>
+
 namespace boost { namespace serialization {
 
 // traits to specify whether to use an optimized array serialization
@@ -42,8 +42,8 @@
 #endif
 
 template<class T>
-class array
- : public wrapper_traits<const array<T> >
+class array :
+ public wrapper_traits<const array<T> >
 {
 public:
     typedef T value_type;
@@ -52,7 +52,15 @@
         m_t(t),
         m_element_count(s)
     {}
-
+ array(const array & rhs) :
+ m_t(rhs.m_t),
+ m_element_count(rhs.m_element_count)
+ {}
+ array & operator=(const array & rhs){
+ m_t = rhs.m_t;
+ m_element_count = rhs.m_element_count;
+ }
+
     // default implementation
     template<class Archive>
     void serialize_optimized(Archive &ar, const unsigned int, mpl::false_ ) const
@@ -108,7 +116,7 @@
     
 private:
     value_type* m_t;
- std::size_t const m_element_count;
+ std::size_t m_element_count;
 };
 
 template<class T>

Modified: trunk/boost/serialization/binary_object.hpp
==============================================================================
--- trunk/boost/serialization/binary_object.hpp (original)
+++ trunk/boost/serialization/binary_object.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -39,8 +39,8 @@
 struct binary_object :
     public wrapper_traits<nvp<const binary_object> >
 {
- /* const */ void * const m_t;
- const std::size_t m_size;
+ void const * m_t;
+ std::size_t m_size;
     template<class Archive>
     void save(Archive & ar, const unsigned int /* file_version */) const {
         ar.save_binary(m_t, m_size);
@@ -50,6 +50,11 @@
         ar.load_binary(const_cast<void *>(m_t), m_size);
     }
     BOOST_SERIALIZATION_SPLIT_MEMBER()
+ binary_object & operator=(const binary_object & rhs) {
+ m_t = rhs.m_t;
+ m_size = rhs.m_size;
+ return *this;
+ }
     binary_object(/* const */ void * const t, std::size_t size) :
         m_t(t),
         m_size(size)

Modified: trunk/boost/serialization/extended_type_info_no_rtti.hpp
==============================================================================
--- trunk/boost/serialization/extended_type_info_no_rtti.hpp (original)
+++ trunk/boost/serialization/extended_type_info_no_rtti.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -34,7 +34,7 @@
 #include <boost/config/abi_prefix.hpp> // must be the last header
 #ifdef BOOST_MSVC
 # pragma warning(push)
-# pragma warning(disable : 4251 4231 4660 4275)
+# pragma warning(disable : 4251 4231 4660 4275 4511 4512)
 #endif
 
 namespace boost {

Modified: trunk/boost/serialization/extended_type_info_typeid.hpp
==============================================================================
--- trunk/boost/serialization/extended_type_info_typeid.hpp (original)
+++ trunk/boost/serialization/extended_type_info_typeid.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -35,9 +35,10 @@
 #include <boost/mpl/if.hpp>
 
 #include <boost/config/abi_prefix.hpp> // must be the last header
+
 #ifdef BOOST_MSVC
 # pragma warning(push)
-# pragma warning(disable : 4251 4231 4660 4275)
+# pragma warning(disable : 4251 4231 4660 4275 4511 4512)
 #endif
 
 namespace boost {
@@ -48,6 +49,8 @@
     public extended_type_info
 {
     virtual const char * get_debug_info() const {
+ if(static_cast<const std::type_info *>(0) == m_ti)
+ return static_cast<const char *>(0);
         return m_ti->name();
     }
 protected:

Modified: trunk/boost/serialization/shared_ptr.hpp
==============================================================================
--- trunk/boost/serialization/shared_ptr.hpp (original)
+++ trunk/boost/serialization/shared_ptr.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -108,6 +108,7 @@
     ar << boost::serialization::make_nvp("px", t_ptr);
 }
 
+#ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
 template<class Archive, class T>
 inline void load(
     Archive & ar,
@@ -119,7 +120,6 @@
     // is never tracked by default. Wrap int in a trackable type
     BOOST_STATIC_ASSERT((tracking_level<T>::value != track_never));
     T* r;
- #ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
     if(file_version < 1){
         //ar.register_type(static_cast<
         // boost_132::detail::sp_counted_base_impl<T *, boost::checked_deleter<T> > *
@@ -134,14 +134,29 @@
         ar.append(sp);
         r = sp.get();
     }
- else
- #endif
- {
+ else{
         ar >> boost::serialization::make_nvp("px", r);
     }
     ar.reset(t,r);
 }
 
+#else
+template<class Archive, class T>
+inline void load(
+ Archive & ar,
+ boost::shared_ptr<T> &t,
+ const unsigned int /*file_version*/
+){
+ // The most common cause of trapping here would be serializing
+ // something like shared_ptr<int>. This occurs because int
+ // is never tracked by default. Wrap int in a trackable type
+ BOOST_STATIC_ASSERT((tracking_level<T>::value != track_never));
+ T* r;
+ ar >> boost::serialization::make_nvp("px", r);
+ ar.reset(t,r);
+}
+#endif
+
 template<class Archive, class T>
 inline void serialize(
     Archive & ar,

Modified: trunk/boost/serialization/singleton.hpp
==============================================================================
--- trunk/boost/serialization/singleton.hpp (original)
+++ trunk/boost/serialization/singleton.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -35,9 +35,15 @@
 #endif
 
 #include <cassert>
+#include <boost/config.hpp>
 #include <boost/noncopyable.hpp>
 #include <boost/serialization/force_include.hpp>
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4511 4512)
+#endif
+
 namespace boost {
 namespace serialization {
 
@@ -71,7 +77,8 @@
 // attempt to retieve a mutable instances while locked will
 // generate a assertion if compiled for debug.
 
-class singleton_module : public boost::noncopyable
+class singleton_module :
+ public boost::noncopyable
 {
 private:
     static bool & get_lock(){
@@ -144,4 +151,8 @@
 } // namespace serialization
 } // namespace boost
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 #endif // BOOST_SERIALIZATION_SINGLETON_HPP

Modified: trunk/boost/serialization/variant.hpp
==============================================================================
--- trunk/boost/serialization/variant.hpp (original)
+++ trunk/boost/serialization/variant.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -46,7 +46,9 @@
 namespace serialization {
 
 template<class Archive>
-struct variant_save_visitor : boost::static_visitor<> {
+struct variant_save_visitor :
+ boost::static_visitor<>
+{
     variant_save_visitor(Archive& ar) :
         m_ar(ar)
     {}

Modified: trunk/boost/serialization/void_cast.hpp
==============================================================================
--- trunk/boost/serialization/void_cast.hpp (original)
+++ trunk/boost/serialization/void_cast.hpp 2009-11-16 00:16:51 EST (Mon, 16 Nov 2009)
@@ -143,6 +143,11 @@
     virtual ~void_caster(){}
 };
 
+#ifdef BOOST_MSVC
+# pragma warning(push)
+# pragma warning(disable : 4251 4231 4660 4275 4511 4512)
+#endif
+
 template <class Derived, class Base>
 class void_caster_primitive :
     public void_caster
@@ -211,6 +216,10 @@
     ~void_caster_virtual_base();
 };
 
+#ifdef BOOST_MSVC
+#pragma warning(pop)
+#endif
+
 template <class Derived, class Base>
 void_caster_virtual_base<Derived,Base>::void_caster_virtual_base() :
     void_caster(


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