> I cannot tell you about the historic background for this, sorry. I
> *guess* that there are similar to those for not providing operator<
> for std::complex.
For complex numbers the answer is quite simple: they are not ordered.
There exists not mathematical definiton for complex c1 < c1. I assume
the issue with bitsets is to prevent ambiguities and/or inefficiencies.
Some people might expect (int)bs1 < (int)bs2, others the bits to be
compared lexicographically from index 0 upwards, and for architectures
that cannot do bitscans one would have to loop through all bits and
compare their bool values, involving lots of shifting and masking on
every comparison. But again, I'm just guesstimating.