(Assuming IEEE-754 representations) almost, but not quite. If you can rule out NaNs, you still need to deal with the fact that +0.0
and -0.0
have different binary encodings, but compare equal (because both are exactly zero).
Of course, C++ doesn't require IEEE-754. So strictly speaking, all bets are off.
If you want to check for (in)equality of encoding, just use memcmp(&a, &b, sizeof a)
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…