gwnavruntime/kernel/SF_AutoPtr.h Source File
Go to the documentation of this file.
17 #ifndef INC_KY_Kernel_AutoPtr_H
18 #define INC_KY_Kernel_AutoPtr_H
32 template<
class T>
class AutoPtr
35 AutoPtr(T* p = 0) : pObject(p), Owner(true) {}
36 AutoPtr(T* p,
bool owner) : pObject(p), Owner(owner) {}
37 AutoPtr(
const AutoPtr<T>& p) : pObject(0), Owner(p.Owner)
39 pObject = p.constRelease();
41 ~AutoPtr(
void) { Reset(); }
43 AutoPtr<T>& operator=(
const AutoPtr<T>& p)
48 Reset(p.constRelease());
54 AutoPtr<T>& operator=(T* p)
60 T&
operator* ()
const {
return *pObject; }
61 T* operator->()
const {
return pObject; }
62 T* GetPtr()
const {
return pObject; }
63 operator bool(
void)
const {
return pObject != 0; }
71 void Reset(T* p = 0,
bool owner =
true)
79 Owner = p != 0 && owner;
87 T* constRelease(
void)
const
89 return const_cast<AutoPtr<T>*
>(
this)->Release();
101 template<
class T>
class ScopePtr
104 ScopePtr(T* p = 0) : pObject(p) {}
105 ~ScopePtr(
void) {
delete pObject; }
107 T&
operator* ()
const {
return *pObject; }
108 T* operator->()
const {
return pObject; }
109 T* GetPtr()
const {
return pObject; }
110 operator bool()
const {
return pObject != 0; }
114 ScopePtr(
const ScopePtr<T>&);
115 const ScopePtr<T>& operator=(
const ScopePtr<T>&);
Definition: gamekitcrowddispersion.h:20
Vec2f operator*(KyFloat32 s, const Vec2f &v)
Multiplies the X and Y coordinates of v by s.
Definition: vec2f.h:184