I'm not sure what you're getting at but
const bool z = (const bool)((int8_t)2);
Is perfectly valid C++.
const bool z = (const bool)((int8_t)2);
Is perfectly valid C++.
int8_t x = 2;
bool y = *reinterpret_cast<bool *>(&x);
But reinterpret_cast isn't valid in a constexpr scope.std::bit_cast is