NGSolve 5.3
autoptr.hpp
1#ifndef FILE_NGS_AUTOPTR
2#define FILE_NGS_AUTOPTR
3
4/**************************************************************************/
5/* File: autoptr.hpp */
6/* Author: STL, Joachim Schoeberl */
7/* Date: 29. Dec. 02 */
8/**************************************************************************/
9
10don't use it
11
12
13namespace ngstd
14{
15
20template <typename T>
21class AutoPtr
22{
23private:
25 T * ptr;
26 bool owner;
27public:
29 typedef T* pT;
30
32 explicit AutoPtr (T * p = 0, bool aowner = true) { ptr = p; owner = aowner;}
34 ~AutoPtr () { if (owner) delete ptr; }
35
37 T & operator*() const { return *ptr; }
38
40 T* operator->() const { return ptr; }
41
43 T *& Ptr() { return ptr; }
44
46 T * Ptr() const { return ptr; }
47
49 void Reset(T * p = 0, bool aowner = true)
50 { if (p != ptr) { if (owner) delete ptr; ptr = p; }; owner = aowner; }
51
53 operator bool () { return ptr != 0; }
54
55private:
57 AutoPtr (AutoPtr &) { ; }
59 AutoPtr & operator= (AutoPtr &) { return *this; }
60};
61
62}
63
64#endif