今日、値を bool にキャストすることは一種の魔法であることに気付きました。
int value = 0x100;
unsigned char uc = static_cast<unsigned char>(value);
bool b = static_cast<bool>(value);
sizeof(uc)とsizeof(b)returnの両方1。ucLSB のみがコピーされるため、0x00 が含まれることはわかっています。しかし、bになるtrueので、私の仮定は、にキャストするboolと、値がコピーされるのではなく評価されるということです。
この仮定は正しいですか?これは標準的な C++ の動作ですか?