Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/ElmerGUI/netgen/libsrc/general/autoptr.hpp
3206 views
1
#ifndef FILE_AUTOPTR
2
#define FILE_AUTOPTR
3
4
/**************************************************************************/
5
/* File: autoptr.hpp */
6
/* Author: STL, Joachim Schoeberl */
7
/* Date: 29. Dec. 02 */
8
/**************************************************************************/
9
10
template <typename T>
11
class AutoPtr
12
{
13
private:
14
T * ptr;
15
public:
16
typedef T* pT;
17
explicit AutoPtr (T * p = 0) { ptr = p; }
18
~AutoPtr () { delete ptr; }
19
20
T & operator*() const { return *ptr; }
21
T* operator->() const { return ptr; }
22
T *& Ptr() { return ptr; }
23
T * Ptr() const { return ptr; }
24
void Reset(T * p = 0) { if (p != ptr) { delete ptr; ptr = p; } }
25
operator bool () { return ptr != 0; }
26
private:
27
AutoPtr (AutoPtr &) { ; }
28
AutoPtr & operator= (AutoPtr &) { ; }
29
};
30
31
#endif
32
33