EHS
Loading...
Searching...
No Matches
UniPtr.h
Go to the documentation of this file.
1#pragma once
2
3namespace ehs
4{
5 template<typename T>
6 class UniPtr
7 {
8 private:
9 T* data;
10
11 public:
13 {
14 delete data;
15 }
16
18 : data(nullptr)
19 {
20 }
21
22 UniPtr(T* data)
23 : data(data)
24 {
25 }
26
27 UniPtr(UniPtr&& uniPtr) noexcept
28 : data(uniPtr.data)
29 {
30 uniPtr.data = nullptr;
31 }
32
33 UniPtr(const UniPtr& uniPtr)
34 : data(nullptr)
35 {
36 }
37
38 UniPtr& operator=(UniPtr&& uniPtr) noexcept
39 {
40 if (this == &uniPtr)
41 return *this;
42
43 delete data;
44
45 data = uniPtr.data;
46
47 uniPtr.data = nullptr;
48
49 return *this;
50 }
51
52 UniPtr& operator=(const UniPtr& uniPtr) noexcept
53 {
54 if (this == &uniPtr)
55 return *this;
56
57 delete data;
58
59 data = nullptr;
60
61 return *this;
62 }
63
64 bool operator==(T* inPtr) const
65 {
66 return data == inPtr;
67 }
68
69 bool operator!=(T* inPtr) const
70 {
71 return data != inPtr;
72 }
73
74 void Release()
75 {
76 delete data;
77 data = nullptr;
78 }
79
81 {
82 return data;
83 }
84 };
85}
UniPtr()
Definition UniPtr.h:17
bool operator==(T *inPtr) const
Definition UniPtr.h:64
~UniPtr()
Definition UniPtr.h:12
UniPtr & operator=(UniPtr &&uniPtr) noexcept
Definition UniPtr.h:38
UniPtr & operator=(const UniPtr &uniPtr) noexcept
Definition UniPtr.h:52
bool operator!=(T *inPtr) const
Definition UniPtr.h:69
T * GetData()
Definition UniPtr.h:80
void Release()
Definition UniPtr.h:74
UniPtr(T *data)
Definition UniPtr.h:22
UniPtr(const UniPtr &uniPtr)
Definition UniPtr.h:33
UniPtr(UniPtr &&uniPtr) noexcept
Definition UniPtr.h:27
Definition Anchor.h:6