operator , >=

忘れがちなのでメモ<, <=, >, >=演算子の定義方法

struct widget {
    int id;
};

bool operator<(const widget& lhs, const widget& rhs)
{
    return lhs.id < rhs.id;
}

bool operator>(const widget& lhs, const widget& rhs)
{
    return rhs < lhs;
}

bool operator<=(const widget& lhs, const widget& rhs)
{
    return !(rhs < lhs);
}

bool operator>=(const widget& lhs, const widget& rhs)
{
    return !(lhs < rhs);
}