Source Code (Use browser search to find items of interest.)
Class Index
qt'QSmartPtr (./qt-2.1.0/src/tools/qsmartptr.h:44)
struct QSmartPtr
{
public:
QSmartPtr() { ptr = new QSmartPtrPrivate<T>( 0 ); }
QSmartPtr( T* t ) { ptr = new QSmartPtrPrivate<T>( t ); }
QSmartPtr( const QSmartPtr& p ) { ptr = p.ptr; ptr->ref(); }
~QSmartPtr() { if ( ptr->deref() ) delete ptr; }
QSmartPtr<T>& operator= ( const QSmartPtr<T>& p ) {
if ( ptr->deref() ) delete ptr;
ptr = p.ptr; ptr->ref();
return *this;
}
QSmartPtr<T>& operator= ( T* p ) {
if ( ptr->deref() ) delete ptr;
ptr = new QSmartPtrPrivate<T>( p );
return *this;
}
bool operator== ( const QSmartPtr<T>& p ) const { return ( ptr->addr == p.ptr->addr ); }
bool operator!= ( const QSmartPtr<T>& p ) const { return ( ptr->addr != p.ptr->addr ); }
bool operator== ( const T* p ) const { return ( ptr->addr == p ); }
bool operator!= ( const T* p ) const { return ( ptr->addr != p ); }
bool operator!() const { return ( ptr->addr == 0 ); }
operator bool() const { return ( ptr->addr != 0 ); }
operator T*() { return ptr->addr; }
operator const T*() const { return ptr->addr; }
const T& operator*() const { return *(ptr->addr); }
T& operator*() { return *(ptr->addr); }
const T* operator->() const { return ptr->addr; }
T* operator->() { return ptr->addr; }
private:
QSmartPtrPrivate<T>* ptr;
};
qt'QSmartPtr::bool() (./qt-2.1.0/include/qsmartptr.h:67)
operator bool() const { return ( ptr->addr != 0 ); }
operator T*() { return ptr->addr; }
operator const T*() const { return ptr->addr; }
const T& operator*() const { return *(ptr->addr); }
T& operator*() { return *(ptr->addr); }
const T* operator->() const { return ptr->addr; }
T* operator->() { return ptr->addr; }
private:
QSmartPtrPrivate<T>* ptr;
};
qt'QSmartPtr::bool() (./qt-2.1.0/src/tools/qsmartptr.h:67)
operator bool() const { return ( ptr->addr != 0 ); }
operator T*() { return ptr->addr; }
operator const T*() const { return ptr->addr; }
const T& operator*() const { return *(ptr->addr); }
T& operator*() { return *(ptr->addr); }
const T* operator->() const { return ptr->addr; }
T* operator->() { return ptr->addr; }
private:
QSmartPtrPrivate<T>* ptr;
};