#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 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