21 #ifndef SMART_POINTER_H
22 #define SMART_POINTER_H
30 inline T *operator ->() {
return Ptr;};
31 inline T &operator *() {
return *Ptr;};
32 inline operator T *() {
return Ptr;};
33 inline operator void *() {
return Ptr;};
34 inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0;
return Tmp;};
35 inline void operator =(T *N) {Ptr = N;};
36 inline bool operator ==(T *lhs)
const {
return Ptr == lhs;};
37 inline bool operator !=(T *lhs)
const {
return Ptr != lhs;};
38 inline T*Get() {
return Ptr;};
40 inline SPtr(T *Ptr) : Ptr(Ptr) {};
41 inline SPtr() : Ptr(0) {};
42 inline ~
SPtr() {
delete Ptr;};
52 inline operator T *() {
return Ptr;};
53 inline operator void *() {
return Ptr;};
54 inline T *UnGuard() {T *Tmp = Ptr; Ptr = 0;
return Tmp;};
56 inline void operator =(T *N) {Ptr = N;};
57 inline bool operator ==(T *lhs)
const {
return Ptr == lhs;};
58 inline bool operator !=(T *lhs)
const {
return Ptr != lhs;};
59 inline T *Get() {
return Ptr;};