os/ossrv/ossrv_pub/boost_apis/boost/tr1/memory.hpp
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/tr1/memory.hpp	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,71 @@
     1.4 +//  (C) Copyright John Maddock 2005.
     1.5 +//  Use, modification and distribution are subject to the
     1.6 +//  Boost Software License, Version 1.0. (See accompanying file
     1.7 +//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     1.8 +
     1.9 +#ifndef BOOST_TR1_MEMORY_HPP_INCLUDED
    1.10 +#  define BOOST_TR1_MEMORY_HPP_INCLUDED
    1.11 +#  include <boost/tr1/detail/config.hpp>
    1.12 +#  include <boost/detail/workaround.hpp>
    1.13 +#  include <memory>
    1.14 +
    1.15 +#ifndef BOOST_HAS_TR1_SHARED_PTR
    1.16 +
    1.17 +//
    1.18 +// This header can get included by boost/shared_ptr.hpp which leads
    1.19 +// to cyclic dependencies, the workaround is to forward declare all 
    1.20 +// the boost components, and then include the actual headers afterwards.
    1.21 +// This is fragile, but seems to work, and doesn't require modification
    1.22 +// of boost/shared_ptr.hpp.
    1.23 +//
    1.24 +namespace boost{
    1.25 +
    1.26 +class bad_weak_ptr;
    1.27 +template<class T> class weak_ptr;
    1.28 +template<class T> class shared_ptr;
    1.29 +template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b);
    1.30 +template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b);
    1.31 +template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r);
    1.32 +template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r);
    1.33 +template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r);
    1.34 +template<class D, class T> D * get_deleter(shared_ptr<T> const & p);
    1.35 +template<class T> class enable_shared_from_this;
    1.36 +
    1.37 +namespace detail{
    1.38 +class shared_count;
    1.39 +class weak_count;
    1.40 +}
    1.41 +
    1.42 +}
    1.43 +
    1.44 +namespace std{ namespace tr1{
    1.45 +
    1.46 +   using ::boost::bad_weak_ptr;
    1.47 +   using ::boost::shared_ptr;
    1.48 +#if !BOOST_WORKAROUND(__BORLANDC__, < 0x0582)
    1.49 +   using ::boost::swap;
    1.50 +#endif
    1.51 +   using ::boost::static_pointer_cast;
    1.52 +   using ::boost::dynamic_pointer_cast;
    1.53 +   using ::boost::const_pointer_cast;
    1.54 +   using ::boost::get_deleter;
    1.55 +   using ::boost::weak_ptr;
    1.56 +   using ::boost::enable_shared_from_this;
    1.57 +
    1.58 +} }
    1.59 +#include <boost/shared_ptr.hpp>
    1.60 +#include <boost/weak_ptr.hpp>
    1.61 +#include <boost/enable_shared_from_this.hpp>
    1.62 +
    1.63 +#else
    1.64 +
    1.65 +#  ifdef BOOST_HAS_INCLUDE_NEXT
    1.66 +#     include_next BOOST_TR1_HEADER(memory)
    1.67 +#  else
    1.68 +#     include BOOST_TR1_STD_HEADER(BOOST_TR1_PATH(memory))
    1.69 +#  endif
    1.70 +
    1.71 +#endif
    1.72 +
    1.73 +#endif
    1.74 +