Is this behavior standard?
, uint8_t typedef unsigned char, , std::ostream unsigned char .
uint8_t, , ?
++ . , sizeof(), 1, char, signed char unsigned char. , bool, bool 1, ,
int main()
{
bool foo = 42;
std::cout << foo << '\n';
}
1, 42, , true 1, .
, , -, cast
++ 17 std::byte, enum class byte : unsigned char {};. , , . , enum class, . , , . , , unsigned char. -
std::ostream& operator <<(std::ostream& os, std::byte b)
{
return os << std::to_integer<unsigned int>(b);
}
std::istream& operator <<(std::istream& is, std::byte& b)
{
unsigned int temp;
is >> temp;
b = std::byte{b};
return is;
}
int main()
{
std::byte foo{10};
std::cout << foo;
}