Skip to content

Commit

Permalink
Merged from 1.33.0 release
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.boost.org/svn/boost/trunk/boost@30540 b8fc166d-592f-0410-95f2-cb63ce0dd405
  • Loading branch information
dgregor committed Aug 12, 2005
1 parent c696c9b commit b1bf6d9
Show file tree
Hide file tree
Showing 262 changed files with 1,810 additions and 1,461 deletions.
Binary file modified boost.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion boost/archive/detail/iserializer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ struct load_pointer_type {
// virtual serialize functions used for plug-ins
typedef BOOST_DEDUCED_TYPENAME
mpl::eval_if<
is_abstract<T>,
serialization::is_abstract<T>,
mpl::identity<abstract<T> >,
mpl::identity<non_abstract<T> >
>::type typex;
Expand Down
2 changes: 1 addition & 1 deletion boost/archive/detail/oserializer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ struct save_pointer_type {
// virtual serialize functions used for plug-ins
typedef
BOOST_DEDUCED_TYPENAME mpl::eval_if<
is_abstract<T>,
serialization::is_abstract<T>,
mpl::identity<abstract<T> >,
mpl::identity<non_abstract<T> >
>::type typex;
Expand Down
10 changes: 8 additions & 2 deletions boost/archive/detail/polymorphic_iarchive_impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,21 @@ class polymorphic_iarchive_impl :
){
return ArchiveImplementation::load_pointer(t, bpis_ptr, finder);
}
virtual void delete_created_pointers(){
ArchiveImplementation::delete_created_pointers();
virtual void set_library_version(unsigned int archive_library_version){
ArchiveImplementation::set_library_version(archive_library_version);
}
virtual unsigned int get_library_version() const{
return ArchiveImplementation::get_library_version();
}
virtual unsigned int get_flags() const {
return ArchiveImplementation::get_flags();
}
virtual void reset_object_address(const void * new_address, const void * old_address){
ArchiveImplementation::reset_object_address(new_address, old_address);
}
virtual void delete_created_pointers(){
ArchiveImplementation::delete_created_pointers();
}
virtual void load_binary(void * t, std::size_t size){
ArchiveImplementation::load_binary(t, size);
}
Expand Down
5 changes: 3 additions & 2 deletions boost/archive/polymorphic_iarchive.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ class polymorphic_iarchive :
virtual void load_end(const char * name) = 0;
virtual void register_basic_serializer(const detail::basic_iserializer & bis) = 0;

virtual void delete_created_pointers() = 0;

// msvc and borland won't automatically pass these to the base class so
// make it explicit here
template<class T>
Expand All @@ -118,8 +116,11 @@ class polymorphic_iarchive :
}
public:
// utility function implemented by all legal archives
virtual void set_library_version(unsigned int archive_library_version) = 0;
virtual unsigned int get_library_version() const = 0;
virtual unsigned int get_flags() const = 0;
virtual void reset_object_address(const void * new_address, const void * old_address) = 0;
virtual void delete_created_pointers() = 0;

virtual void load_binary(void * t, std::size_t size) = 0;

Expand Down
2 changes: 1 addition & 1 deletion boost/function.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <boost/function/detail/prologue.hpp>

// Visual Age C++ doesn't handle the file iteration well
#if BOOST_WORKAROUND(__IBMCPP__, <= 600)
#if BOOST_WORKAROUND(__IBMCPP__, >= 500)
# if BOOST_FUNCTION_MAX_ARGS >= 0
# include <boost/function/function0.hpp>
# endif
Expand Down
1 change: 1 addition & 0 deletions boost/multi_index/ordered_index.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
#include <utility>

#if !defined(BOOST_MULTI_INDEX_DISABLE_SERIALIZATION)
#include <boost/archive/archive_exception.hpp>
#include <boost/bind.hpp>
#include <boost/multi_index/detail/duplicates_iterator.hpp>
#include <boost/throw_exception.hpp>
Expand Down
2 changes: 1 addition & 1 deletion boost/numeric/interval/detail/ppc_rounding_control.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#error This header only works on PPC CPUs.
#endif

#ifdef __GNUC__
#if defined(__GNUC__ ) || (__IBMCPP__ >= 700)

namespace boost {
namespace numeric {
Expand Down
8 changes: 5 additions & 3 deletions boost/serialization/base_object.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

#include <boost/static_assert.hpp>
#include <boost/serialization/type_info_implementation.hpp>
#include <boost/serialization/force_include.hpp>

// if no archive headers have been included
// skip inclusion of void_cast.hpp . This is to avoid auto-link when
Expand All @@ -44,10 +45,11 @@
class void_caster;
} // namespace void_cast_detail
template<class Derived, class Base>
const void_cast_detail::void_caster & void_cast_register(
BOOST_DLLEXPORT
inline const void_cast_detail::void_caster & void_cast_register(
const Derived * /* dnull = NULL */,
const Base * /* bnull = NULL */
);
) BOOST_USED;
} // namespace serialization
} // namespace boost
#else
Expand Down Expand Up @@ -126,7 +128,7 @@ namespace detail {
static_cast<const Base *>(NULL)
);
}
} m_reg;
};
static void invoke(){
typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
BOOST_DEDUCED_TYPENAME type_info_implementation<Base>::type::is_polymorphic,
Expand Down
12 changes: 6 additions & 6 deletions boost/serialization/collections_load_imp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
#include <cassert>
#include <boost/config.hpp>
#include <boost/detail/workaround.hpp>
#include <boost/archive/basic_archive.hpp>

#include <boost/aligned_storage.hpp>

Expand All @@ -35,11 +34,6 @@

namespace boost{
namespace serialization {
namespace stl {

//////////////////////////////////////////////////////////////////////
// implementation of serialization for STL containers
//

// reserve space on stack for an object of type T without actually
// construction such an object
Expand Down Expand Up @@ -77,6 +71,12 @@ struct stack_construct : public stack_allocate<T>
}
};

namespace stl {

//////////////////////////////////////////////////////////////////////
// implementation of serialization for STL containers
//

// sequential container input
template<class Archive, class Container>
struct archive_input_seq
Expand Down
2 changes: 0 additions & 2 deletions boost/serialization/collections_save_imp.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@

// helper function templates for serialization of collections

#include <boost/archive/basic_archive.hpp>

#include <boost/serialization/nvp.hpp>
#include <boost/serialization/serialization.hpp>

Expand Down
10 changes: 5 additions & 5 deletions boost/serialization/export.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
#include <boost/serialization/force_include.hpp>
#include <boost/serialization/type_info_implementation.hpp>
#include <boost/serialization/extended_type_info.hpp>
#include <boost/serialization/is_abstract.hpp>

namespace boost {

Expand All @@ -62,7 +63,6 @@ template<class Archive, class T>
BOOST_DLLEXPORT const basic_pointer_oserializer &
instantiate_pointer_oserializer(Archive * ar, T *) BOOST_USED;


namespace export_impl
{
struct nothing{
Expand Down Expand Up @@ -184,7 +184,7 @@ struct export_instance {
#else
invoke() {
typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
is_abstract<T>,
serialization::is_abstract<T>,
mpl::identity<abstract>,
mpl::identity<not_abstract>
>::type typex;
Expand All @@ -202,12 +202,12 @@ struct export_instance {
std::pair<const void *, const void *>
export_instance<T, ASeq>::invoke() {
typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
is_abstract<T>,
serialization::is_abstract<T>,
mpl::identity<abstract>,
mpl::identity<not_abstract>
>::type type;
>::type typex;
return std::pair<const void *, const void *>(
type::invoke(),
typex::invoke(),
& guid_initializer<T>::instance
);
}
Expand Down
28 changes: 16 additions & 12 deletions boost/serialization/is_abstract.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,31 +18,35 @@

#include <boost/config.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/type_traits/is_abstract.hpp>

#ifndef BOOST_NO_IS_ABSTRACT
#include <boost/type_traits/is_abstract.hpp>
#else
// default to false if not supported
// supplant boost/type_traits/is_abstract.hpp
# define BOOST_TT_IS_ABSTRACT_CLASS_HPP
namespace boost {
namespace boost {
namespace serialization {
template<class T>
struct is_abstract {
typedef mpl::bool_<false> type;
BOOST_STATIC_CONSTANT(bool, value = false);
// default to false if not supported
#ifdef BOOST_NO_IS_ABSTRACT
typedef BOOST_DEDUCED_TYPENAME mpl::bool_<false> type;
BOOST_STATIC_CONSTANT(bool, value = false);
#else
typedef BOOST_DEDUCED_TYPENAME boost::is_abstract<T>::type type;
BOOST_STATIC_CONSTANT(bool, value = type::value);
#endif
};
} // namespace boost
#endif
} // namespace serialization
} // namespace boost

// define a macro to make explicit designation of this more transparent
#define BOOST_IS_ABSTRACT(T) \
namespace boost { \
namespace serialization { \
template<> \
struct is_abstract< T > { \
typedef mpl::bool_<true> type; \
BOOST_STATIC_CONSTANT(bool, value = true); \
}; \
} // namespace boost
} \
} \
/**/

#endif //BOOST_SERIALIZATION_IS_ABSTRACT_CLASS_HPP
Loading

0 comments on commit b1bf6d9

Please sign in to comment.