| T | 
| public | SharedPtr() | 
| public | SharedPtr(SharedPtr&& that) | 
| public explicit | SharedPtr(T* ptr_) | 
| public | SharedPtr(T* ptr_, const SharedCount<T>& count_) | 
| public | SharedPtr(const SharedPtr& that) | 
| public | SharedPtr(const WeakPtr<T>& that) | 
| public inline T* | Get() const | 
| public inline const SharedCount<T>& | GetCount() const | 
| public inline T* | GetPtr() const | 
| public int | GetUseCount() const | 
| public inline bool | IsNull() const | 
| public bool | IsUnique() const | 
| public void | Reset() | 
| public void | Reset(T* ptr_) | 
| public void | Swap(SharedPtr& that) | 
| public inline T& | operator*() const | 
| public inline T* | operator->() const | 
| public void | operator=(SharedPtr&& that) | 
| public void | operator=(const SharedPtr& that) | 
| private typedef CountType | SharedCount<T> | 
| private typedef Self | SharedPtr | 
| private SharedCount<T> | count | 
| private T* | ptr |