#ifndef _zadapt_H_
#define _zadapt_H_
/////////////////////////////////////////////////////////////////////////////
// An adapter to allow classes like TRefs to be stored in STL containers
// (the operator & was breaking things). This was shamelessly stolen from
// the ATL class CAdapt and modified for our purposes.
//
template <class T>
class ZAdapt
{
public:
ZAdapt()
{
}
ZAdapt(const T& rSrc) :
m_T(rSrc)
{
}
ZAdapt(const ZAdapt& rSrCA) :
m_T(rSrCA.m_T)
{
}
ZAdapt& operator=(const T& rSrc)
{
m_T = rSrc;
return *this;
}
bool operator<(const T& rSrc) const
{
return m_T < rSrc;
}
bool operator==(const T& rSrc) const
{
return m_T == rSrc;
}
operator T&()
{
return m_T;
}
operator const T&() const
{
return m_T;
}
T& operator->()
{
return m_T;
}
const T& operator->() const
{
return m_T;
}
T m_T;
};
/////////////////////////////////////////////////////////////////////////////
#endif