At a guess, as they would only make sense for bools, which were late to the party
Even if bools had been around at the start these operators would be of limited use, as without side-effects they would be identical to |=
and &=
with boolean operands, so the only use would be trapping passing a non-bool in by accident.
If the proposed operators are also short-circuiting (not unreasonable as ||
and &&
are for in-built types) then you also have an additional justification for them in the presence of side effects.
The only other possible reason I can think of for allowing them would be if it significantly simplified parsing/compiling the language, however that is likely not the case given that they don't make sense for non-bool types.
Ultimately they are not in the language because no one has cared enough to put them in the language, thus we can conclude that none of these justifications is sufficient to warrant the cost of submitting a proposal, getting it into the standard and implementing the feature.