On Saturday, 25 January 2014 at 13:43:25 UTC, Timon Gehr wrote:
Why not?struct S{ auto opCmp(S r){ return float.nan; } } void main(){ S s; assert(s!<>=s); }
Yes, but only for floatingpoint types - you cannot overload the !<>= operator for integral types and it will be deprecated anyway. And you cannot opverload opCmp in a way that the new defined integer NaN will not compare in some way to the other integer values. What would be needed is a minimal signed type (2bit with the values -1, 0, 1 and NaN) and use that in opCmp.
