CompareKeys.h

// CompareKeys.h
//
// Author David Barrett-Lennard
// (C)opyright Cedanet Pty Ltd 2008

namespace ceda
{

///////////////////////////////////////////////////////////////////////////////////////////////////
// CompareKeys

// Returns > 0 if k1 > k2
//         = 0 if k1 = k2
//         < 0 if k1 < k2

template <typename Key>
inline int CompareKeys(const Key& k1, const Key& k2)
{
    return k1==k2 ? 0 : (k1<k2 ? -1 : 1);
}

inline int CompareKeys(int8 k1, int8 k2)
{
    return k1 - k2;
}
inline int CompareKeys(int16 k1, int16 k2)
{
    return k1 - k2;
}
inline int CompareKeys(int32 k1, int32 k2)
{
    return k1 - k2;
}

template<typename T>
inline int CompareKeys(const xvector<T>& k1, const xvector<T>& k2)
{
    return k1.compare(k2);
}

} // namespace ceda