2 * Copyright (c) 1997-1999
3 * Silicon Graphics Computer Systems, Inc.
8 * This material is provided "as is", with absolutely no warranty expressed
9 * or implied. Any use is at your own risk.
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.
21 #ifndef _STLP_OUTERMOST_HEADER_ID
22 # define _STLP_OUTERMOST_HEADER_ID 0x46
23 # include <stl/_prolog.h>
27 #if (_STLP_OUTERMOST_HEADER_ID == 0x46)
28 # ifndef _STLP_INTERNAL_ALLOC_H
29 # include <stl/_alloc.h>
32 # ifndef _STLP_INTERNAL_TEMPBUF_H
33 # include <stl/_tempbuf.h>
36 # ifndef _STLP_INTERNAL_RAW_STORAGE_ITER_H
37 # include <stl/_raw_storage_iter.h>
40 # include <stl/_auto_ptr.h>
43 #if (_STLP_OUTERMOST_HEADER_ID != 0x46) || defined (_STLP_IMPORT_VENDOR_STD)
44 # if defined (__MSL__)
45 # include _STLP_NATIVE_HEADER(limits)
48 # if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
49 # define BOOST_TR1_MEMORY_INCLUDED
50 # define BOOST_TR1_FULL_MEMORY_INCLUDED
53 # if defined (_STLP_HAS_INCLUDE_NEXT)
54 # include_next <memory>
56 # include _STLP_NATIVE_HEADER(memory)
59 # if defined (__MSL__) && (__MSL__ >= 0x2405 && __MSL__ < 0x5201)
60 /* 980401 vss MSL 2.4 Pro 3 Release */
65 #if (_STLP_OUTERMOST_HEADER_ID == 0x46)
66 # include <stl/_epilog.h>
67 # undef _STLP_OUTERMOST_HEADER_ID
70 #if !defined(_STLP_NO_EXTENSIONS) && defined(_STLP_USE_BOOST_SUPPORT)
75 template<class T> class shared_ptr;
76 template<class T> class weak_ptr;
77 template<class T> class enable_shared_from_this;
78 template<class D, class T> D * get_deleter(shared_ptr<T> const & p);
79 template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const & r);
80 template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const & r);
81 template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const & r);
82 template<class T> void swap(weak_ptr<T> & a, weak_ptr<T> & b);
83 template<class T> void swap(shared_ptr<T> & a, shared_ptr<T> & b);
92 # ifndef BOOST_SHARED_PTR_HPP_INCLUDED
93 # include <boost/shared_ptr.hpp>
95 # ifndef BOOST_WEAK_PTR_HPP_INCLUDED
96 # include <boost/weak_ptr.hpp>
98 # ifndef BOOST_ENABLE_SHARED_FROM_THIS_HPP_INCLUDED
99 # include <boost/enable_shared_from_this.hpp>
102 _STLP_BEGIN_NAMESPACE
106 using ::boost::bad_weak_ptr;
107 using ::boost::shared_ptr;
109 using ::boost::static_pointer_cast;
110 using ::boost::dynamic_pointer_cast;
111 using ::boost::const_pointer_cast;
112 using ::boost::get_deleter;
113 using ::boost::weak_ptr;
114 using ::boost::enable_shared_from_this;
123 #endif /* !_STLP_NO_EXTENSIONS && _STLP_USE_BOOST_SUPPORT */
125 #endif /* _STLP_MEMORY */