diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-03-14 18:35:17 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-03-14 18:35:17 (GMT) |
commit | a135c6ff4dcded5661a2321512960b14cf8c15c8 (patch) | |
tree | b0017ecfe702304f592b9d4e8b943784cff26fb2 /3rdParty/Boost/src/boost/serialization/base_object.hpp | |
parent | 02d6188ab335e6c62b8341b84579d9549d215118 (diff) | |
download | swift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.zip swift-contrib-a135c6ff4dcded5661a2321512960b14cf8c15c8.tar.bz2 |
Updated Boost to 1.46.1.
This should hopefuily fix a hang on shutdown on Mac OS X.
Resolves: #782
Release-Notes: Fixed a potential hang on shutdown on Mac OS X.
Diffstat (limited to '3rdParty/Boost/src/boost/serialization/base_object.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/serialization/base_object.hpp | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/3rdParty/Boost/src/boost/serialization/base_object.hpp b/3rdParty/Boost/src/boost/serialization/base_object.hpp deleted file mode 100644 index b840d25..0000000 --- a/3rdParty/Boost/src/boost/serialization/base_object.hpp +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef BOOST_SERIALIZATION_BASE_OBJECT_HPP -#define BOOST_SERIALIZATION_BASE_OBJECT_HPP - -// MS compatible compilers support #pragma once -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -# pragma once -#endif - -/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8 -// base_object.hpp: - -// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com . -// Use, modification and distribution is subject to the Boost Software -// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) - -// See http://www.boost.org for updates, documentation, and revision history. - -// if no archive headers have been included this is a no op -// this is to permit BOOST_EXPORT etc to be included in a -// file declaration header - -#include <boost/config.hpp> -#include <boost/detail/workaround.hpp> - -#include <boost/mpl/eval_if.hpp> -#include <boost/mpl/int.hpp> -#include <boost/mpl/bool.hpp> -#include <boost/mpl/identity.hpp> - -#include <boost/type_traits/is_base_and_derived.hpp> -#include <boost/type_traits/is_pointer.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/type_traits/is_polymorphic.hpp> - -#include <boost/static_assert.hpp> -#include <boost/serialization/access.hpp> -#include <boost/serialization/force_include.hpp> -#include <boost/serialization/void_cast_fwd.hpp> - -namespace boost { -namespace serialization { - -namespace detail -{ - // get the base type for a given derived type - // preserving the const-ness - template<class B, class D> - struct base_cast - { - typedef BOOST_DEDUCED_TYPENAME - mpl::if_< - is_const<D>, - const B, - B - >::type type; - BOOST_STATIC_ASSERT(is_const<type>::value == is_const<D>::value); - }; - - // only register void casts if the types are polymorphic - template<class Base, class Derived> - struct base_register - { - struct polymorphic { - static void const * invoke(){ - Base const * const b = 0; - Derived const * const d = 0; - return & void_cast_register(d, b); - } - }; - struct non_polymorphic { - static void const * invoke(){ - return 0; - } - }; - static void const * invoke(){ - typedef BOOST_DEDUCED_TYPENAME mpl::eval_if< - is_polymorphic<Base>, - mpl::identity<polymorphic>, - mpl::identity<non_polymorphic> - >::type type; - return type::invoke(); - } - }; - -} // namespace detail -#if defined(__BORLANDC__) && __BORLANDC__ < 0x610 -template<class Base, class Derived> -const Base & -base_object(const Derived & d) -{ - BOOST_STATIC_ASSERT(! is_pointer<Derived>::value); - detail::base_register<Base, Derived>::invoke(); - return access::cast_reference<const Base, Derived>(d); -} -#else -template<class Base, class Derived> -BOOST_DEDUCED_TYPENAME detail::base_cast<Base, Derived>::type & -base_object(Derived &d) -{ - BOOST_STATIC_ASSERT(( is_base_and_derived<Base,Derived>::value)); - BOOST_STATIC_ASSERT(! is_pointer<Derived>::value); - typedef BOOST_DEDUCED_TYPENAME detail::base_cast<Base, Derived>::type type; - detail::base_register<type, Derived>::invoke(); - return access::cast_reference<type, Derived>(d); -} -#endif - -} // namespace serialization -} // namespace boost - -#endif // BOOST_SERIALIZATION_BASE_OBJECT_HPP |