| 
 
template <class T> struct SemiRef
{
    T * p;
    explicit SemiRef ( T & t ) : p(&t) {} 
};
template <class T> inline bool operator < ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p < *b.p;
}
template <class T> inline bool operator > ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p > *b.p;
}
template <class T> inline bool operator <= ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p <= *b.p;
}
template <class T> inline bool operator >= ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p >= *b.p;
}
template <class T> inline bool operator == ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p == *b.p;
}
template <class T> inline bool operator != ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p != *b.p;
}
template <class T> inline T operator + ( const SemiRef<T> & a, const SemiRef<T> & b )
{
    return *a.p + *b.p;
}
Здесь определены ещё не все операторы. Они будут добавляться по мере надобности Исходники находятся в файле tempext.h.Наверх |