42 lines
1.2 KiB
C++
42 lines
1.2 KiB
C++
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// OpenGL Image Copyright (c) 2008 - 2011 G-Truc Creation (www.g-truc.net)
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// Created : 2008-12-19
|
|
// Updated : 2005-06-13
|
|
// Licence : This source is under MIT License
|
|
// File : gli/fetch.hpp
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef GLI_SHARED_PTR_INCLUDED
|
|
#define GLI_SHARED_PTR_INCLUDED
|
|
|
|
namespace gli
|
|
{
|
|
template <typename T>
|
|
class shared_ptr
|
|
{
|
|
public:
|
|
shared_ptr();
|
|
shared_ptr(shared_ptr const & SmartPtr);
|
|
shared_ptr(T* pPointer);
|
|
~shared_ptr();
|
|
|
|
T& operator*();
|
|
T* operator->();
|
|
const T& operator*() const;
|
|
const T* operator->() const;
|
|
shared_ptr& operator=(shared_ptr const & SmartPtr);
|
|
shared_ptr& operator=(T* pPointer);
|
|
bool operator==(shared_ptr const & SmartPtr) const;
|
|
bool operator!=(shared_ptr const & SmartPtr) const;
|
|
|
|
private:
|
|
int* m_pReference;
|
|
T* m_pPointer;
|
|
};
|
|
}//namespace gli
|
|
|
|
#include "shared_ptr.inl"
|
|
|
|
#endif //GLI_SHARED_PTR_INCLUDED
|