[Interest] QVariant compare operator
André Pönitz
apoenitz at t-online.de
Mon Apr 20 18:21:24 CEST 2020
On Mon, Apr 20, 2020 at 10:04:38AM -0400, Matthew Woehlke wrote:
> On 19/04/2020 08.23, André Pönitz wrote:
> > QVariant(TypeA) and QVariant(TypeB) can be ordered for different TypeA and
> > TypeB based e.g. on alphabetical order of their .typeName().
> >
> > If wanted, this can be refined to make e.g. all integral types comparable.
>
> No:
>
> int{5} <=> JsonObject{...} => lesser
> int{5} <=> long{3} => greater
> long{3} <=> JsonObject{...} => greater
>
> ...oops.
"make comparable" means lumping them into a common "type", say
"@integral", with values covering the union set of the values
of the original type.
int{5} == "@integral"{5} <=> JsonObject{...} => lesser
int{5} == "@integral"{5} <=> "@integral{3}" == long{3} => greater
long{3} == "@integral"{3} <=> JsonObject{...} => lesser! // not greater
> You'd have to make all integral types sort before (or after) all other
> types, but then you're back to not having a reliable ordering by type name.
No.
> It makes *much* more sense that some comparisons just come back
> "incomparable".
Possible, but not needed on the type level, and restricts use
unnecessarily.
Andre'
More information about the Interest
mailing list