|
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