- Renamed SharedPtr<T>::Pointer to SharedPtr<T>::PointerType
- Introduced ReferenceType to SharedPtr and ScopedPtr svn-id: r48337
This commit is contained in:
parent
2a2cfe7ab0
commit
a8d2c0de10
1 changed files with 8 additions and 6 deletions
14
common/ptr.h
14
common/ptr.h
|
@ -111,7 +111,8 @@ class SharedPtr {
|
||||||
public:
|
public:
|
||||||
typedef int RefValue;
|
typedef int RefValue;
|
||||||
typedef T ValueType;
|
typedef T ValueType;
|
||||||
typedef T *Pointer;
|
typedef T *PointerType;
|
||||||
|
typedef T &ReferenceType;
|
||||||
|
|
||||||
SharedPtr() : _refCount(0), _deletion(0), _pointer(0) {}
|
SharedPtr() : _refCount(0), _deletion(0), _pointer(0) {}
|
||||||
|
|
||||||
|
@ -152,8 +153,8 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
ValueType &operator*() const { assert(_pointer); return *_pointer; }
|
ReferenceType operator*() const { assert(_pointer); return *_pointer; }
|
||||||
Pointer operator->() const { assert(_pointer); return _pointer; }
|
PointerType operator->() const { assert(_pointer); return _pointer; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the plain pointer value. Be sure you know what you
|
* Returns the plain pointer value. Be sure you know what you
|
||||||
|
@ -161,7 +162,7 @@ public:
|
||||||
*
|
*
|
||||||
* @return the pointer the SharedPtr object manages
|
* @return the pointer the SharedPtr object manages
|
||||||
*/
|
*/
|
||||||
Pointer get() const { return _pointer; }
|
PointerType get() const { return _pointer; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implicit conversion operator to bool for convenience, to make
|
* Implicit conversion operator to bool for convenience, to make
|
||||||
|
@ -219,7 +220,7 @@ private:
|
||||||
|
|
||||||
RefValue *_refCount;
|
RefValue *_refCount;
|
||||||
SharedPtrDeletionInternal *_deletion;
|
SharedPtrDeletionInternal *_deletion;
|
||||||
T *_pointer;
|
PointerType _pointer;
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
|
@ -227,10 +228,11 @@ class ScopedPtr : NonCopyable {
|
||||||
public:
|
public:
|
||||||
typedef T ValueType;
|
typedef T ValueType;
|
||||||
typedef T *PointerType;
|
typedef T *PointerType;
|
||||||
|
typedef T &ReferenceType;
|
||||||
|
|
||||||
explicit ScopedPtr(PointerType o = 0) : _pointer(o) {}
|
explicit ScopedPtr(PointerType o = 0) : _pointer(o) {}
|
||||||
|
|
||||||
ValueType &operator*() const { return *_pointer; }
|
ReferenceType operator*() const { return *_pointer; }
|
||||||
PointerType operator->() const { return _pointer; }
|
PointerType operator->() const { return _pointer; }
|
||||||
operator PointerType() const { return _pointer; }
|
operator PointerType() const { return _pointer; }
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue