memory
资源名称:Vc_STL.rar [点击查看]
上传用户:sichengcw
上传日期:2009-02-17
资源大小:202k
文件大小:2k
源码类别:
STL
开发平台:
Visual C++
- /*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
- #ifndef __SGI_STL_MEMORY
- #define __SGI_STL_MEMORY
- #include <stl_algobase.h>
- #include <stl_alloc.h>
- #include <stl_construct.h>
- #include <stl_tempbuf.h>
- #include <stl_uninitialized.h>
- #include <stl_raw_storage_iter.h>
- // Note: auto_ptr is commented out in this release because the details
- // of the interface are still being discussed by the C++ standardization
- // committee. It will be included once the iterface is finalized.
- #if 0
- #if defined(_MUTABLE_IS_KEYWORD) && defined(_EXPLICIT_IS_KEYWORD) &&
- defined(__STL_MEMBER_TEMPLATES)
- __STL_BEGIN_NAMESPACE
- template <class X> class auto_ptr {
- private:
- X* ptr;
- mutable bool owns;
- public:
- typedef X element_type;
- explicit auto_ptr(X* p = 0) __STL_NOTHROW : ptr(p), owns(p) {}
- auto_ptr(const auto_ptr& a) __STL_NOTHROW : ptr(a.ptr), owns(a.owns) {
- a.owns = 0;
- }
- template <class T> auto_ptr(const auto_ptr<T>& a) __STL_NOTHROW
- : ptr(a.ptr), owns(a.owns) {
- a.owns = 0;
- }
- auto_ptr& operator=(const auto_ptr& a) __STL_NOTHROW {
- if (&a != this) {
- if (owns)
- delete ptr;
- owns = a.owns;
- ptr = a.ptr;
- a.owns = 0;
- }
- }
- template <class T> auto_ptr& operator=(const auto_ptr<T>& a) __STL_NOTHROW {
- if (&a != this) {
- if (owns)
- delete ptr;
- owns = a.owns;
- ptr = a.ptr;
- a.owns = 0;
- }
- }
- ~auto_ptr() {
- if (owns)
- delete ptr;
- }
- X& operator*() const __STL_NOTHROW { return *ptr; }
- X* operator->() const __STL_NOTHROW { return ptr; }
- X* get() const __STL_NOTHROW { return ptr; }
- X* release const __STL_NOTHROW { owns = false; return ptr }
- };
- __STL_END_NAMESPACE
- #endif /* mutable && explicit && member templates */
- #endif /* 0 */
- #endif /* __SGI_STL_MEMORY */
- // Local Variables:
- // mode:C++
- // End: