我已经看到,如果你有操作符,你可以实现,例如,操作符> = as!(a< b).不过,当我去布里斯托尔的C委员会时,他们表示你可以用这种方式实现所有的比较运算符.特别地,当考虑具有非平凡比较运算符的类型(考虑任意长的字符串,特别是如果是Unicode)时,可以仅对呼叫运算符<我不能设想如何做到这一点. 如何实现运算符>并且运算符< =只需一次调用运算符<没有其他的比较运算符?
解决方法
> a> b == b <一个
> a< = b ==!(b< a)
> a> = b ==!(a< b)
甚至有可能在少于(在这里滥用我的元语法的种类)实现平等:
> a< = b ==!(b< a)
> a> = b ==!(a< b)
甚至有可能在少于(在这里滥用我的元语法的种类)实现平等:
>(a == b)==(!(a< b)&&!(b< a))>(a!= b)==(a< b || b< a) 虽然我不建议在实践中这样做,因为它需要两次比较,通常可以直接更有效地实施.