1/*
2 * Copyright (c) 1997-1999
3 * Silicon Graphics Computer Systems, Inc.
4 *
5 * Copyright (c) 1999
6 * Boris Fomitchev
7 *
8 * This material is provided "as is", with absolutely no warranty expressed
9 * or implied. Any use is at your own risk.
10 *
11 * Permission to use or copy this software for any purpose is hereby granted
12 * without fee, provided the above notices are retained on all copies.
13 * Permission to modify the code and to distribute modified code is granted,
14 * provided the above notices are retained, and a notice that the code was
15 * modified is included with the above copyright notice.
16 *
17 */
18
19#ifndef _STLP_MEMORY
20
21#ifndef _STLP_OUTERMOST_HEADER_ID
22#  define _STLP_OUTERMOST_HEADER_ID 0x46
23#  include <stl/_prolog.h>
24#  define _STLP_MEMORY
25#endif
26
27#if (_STLP_OUTERMOST_HEADER_ID == 0x46)
28#  ifndef _STLP_INTERNAL_ALLOC_H
29#    include <stl/_alloc.h>
30#  endif
31
32#  ifndef _STLP_INTERNAL_TEMPBUF_H
33#    include <stl/_tempbuf.h>
34#  endif
35
36#  ifndef _STLP_INTERNAL_RAW_STORAGE_ITER_H
37#    include <stl/_raw_storage_iter.h>
38#  endif
39
40#  include <stl/_auto_ptr.h>
41#endif
42
43#if (_STLP_OUTERMOST_HEADER_ID != 0x46) || defined (_STLP_IMPORT_VENDOR_STD)
44#  if defined (__MSL__)
45#    include _STLP_NATIVE_HEADER(limits)
46#  endif
47
48#  if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
49#    define BOOST_TR1_MEMORY_INCLUDED
50#    define BOOST_TR1_FULL_MEMORY_INCLUDED
51#  endif
52
53#  if defined (_STLP_HAS_INCLUDE_NEXT)
54#    include_next <memory>
55#  else
56#    include _STLP_NATIVE_HEADER(memory)
57#  endif
58
59#  if defined (__MSL__) && (__MSL__ >= 0x2405   && __MSL__ < 0x5201)
60/*  980401 vss  MSL 2.4  Pro 3 Release  */
61#    include <new_mem.h>
62#  endif
63#endif
64
65#if (_STLP_OUTERMOST_HEADER_ID == 0x46)
66#  include <stl/_epilog.h>
67#  undef _STLP_OUTERMOST_HEADER_ID
68#endif
69
70#if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
71
72namespace boost {
73
74class bad_weak_ptr;
75template<class T> class shared_ptr;
76template<class T> class weak_ptr;
77template<class T> class enable_shared_from_this;
78template<class D, class T> D * get_deleter(shared_ptr<T> const & p);
79template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r);
80template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r);
81template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r);
82template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b);
83template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b);
84
85namespace detail{
86class shared_count;
87class weak_count;
88}
89
90} // namespace boost
91
92#  ifndef BOOST_SHARED_PTR_HPP_INCLUDED
93#    include <boost/shared_ptr.hpp>
94#  endif
95#  ifndef BOOST_WEAK_PTR_HPP_INCLUDED
96#    include <boost/weak_ptr.hpp>
97#  endif
98#  ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
99#    include <boost/enable_shared_from_this.hpp>
100#  endif
101
102_STLP_BEGIN_NAMESPACE
103
104namespace tr1 {
105
106using ::boost::bad_weak_ptr;
107using ::boost::shared_ptr;
108using ::boost::swap;
109using ::boost::static_pointer_cast;
110using ::boost::dynamic_pointer_cast;
111using ::boost::const_pointer_cast;
112using ::boost::get_deleter;
113using ::boost::weak_ptr;
114using ::boost::enable_shared_from_this;
115
116// shared_ptr IO
117// weak_ptr IO
118
119} // namespace tr1
120
121_STLP_END_NAMESPACE
122
123#endif /* !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT */
124
125#endif /* _STLP_MEMORY */
126
127// Local Variables:
128// mode:C++
129// End:
130
131