Out of curiosity, why the bitwise operator ~ is the only non-logical operator that does not have an assignment version in C++, i.e. ~=? All relational and bitwise operators have an assignment version, but ~= is missing. Is there a particular reason for that?
For all the operators in C++, see for instance: http://www.tutorialspoint.com/cplusplus/cpp_operators.htm