Files
Work/smtp/PTREX.HPP
2024-08-07 09:16:27 -04:00

52 lines
1.2 KiB
C++

#ifndef _SMTP_SMARTPOINTEREX_HPP_
#define _SMTP_SMARTPOINTEREX_HPP_
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
template <class T>
class SmartPointerEx : public SmartPointer<T>
{
public:
SmartPointerEx(void);
SmartPointerEx(T FAR *lpSmartPointer,PointerDisposition::Disposition disposition=PointerDisposition::Assume);
SmartPointerEx(const SmartPointer<T> &someSmartPointer);
virtual ~SmartPointerEx();
int operator < (const SmartPointerEx<T> &someSmartPointerEx)const;
private:
};
template <class T>
inline
SmartPointerEx<T>::SmartPointerEx(void)
{
}
template <class T>
inline
SmartPointerEx<T>::SmartPointerEx(T *lpSmartPointer,PointerDisposition::Disposition disposition)
: SmartPointer<T>(lpSmartPointer,disposition)
{
}
template <class T>
inline
SmartPointerEx<T>::SmartPointerEx(const SmartPointer<T> &someSmartPointer)
{
(SmartPointer<T>&)*this=someSmartPointer;
}
template <class T>
inline
SmartPointerEx<T>::~SmartPointerEx()
{
}
template <class T>
inline
int SmartPointerEx<T>::operator <(const SmartPointerEx<T> &someSmartPointerEx)const
{
return *((T FAR*)((SmartPointer<T>&)*this))<*((T FAR*)((SmartPointer<T>&)someSmartPointerEx));
}
#endif