← Back to context

Comment by kreco

6 hours ago

I'm totally fine with enforcing that int8_t == char == 8-bits, however I'm not sure about spreading the misconception that a byte is 8-bits. A byte with 8-bits is called an octet.

At the same time, a `byte` is already an "alias" for `char` since C++17 anyway[1].

[1] https://en.cppreference.com/w/cpp/types/byte

My first experience with computers was 45 years ago, and a "byte" back then was defined as an 8-bit quantity. And in the intervening 45 years, I've never come across a different meaning for "byte". I'll ask for a citation for a definition of "byte" that isn't 8-bits.

I, for one, hate that int8 == signed char.

std::cout << (int8_t)32 << std::endl; //should print 32 dang it

  • Now you can also enjoy the fact that you can't even compile:

      std::cout << (std::byte)32 << std::endl;
    

    because there is no default operator<< defined.

    • Very enjoyable. It will a constant reminder that I need to decide how I want std::byte to print - character or integer ...