Hello, With int8_t prints out char according to ascii number. Similarly it reads a single char, which cannot be static converted. The compiler gives no warning whatsoever. But when is used with scanf %hhd and printf %d it works perfectly. Is this really the intended functioning? In Rust i8 and C int8 works fine, too. #include #include int main() { std::int8_t myInt{65}; myInt += 1; std::cout << myInt; } Guess what this returns? Character "B". int main() { std::int8_t myInt{}; std::cin >> myInt; std::cout << myInt; } This will also read a character, and print the characters ascii value. So if I give it 3, it read it as '3', and prints out 51. The compiler gives no warning of this whatsoever with the flags: "-std=c++20", "-pedantic-errors", "-Wall", "-Wpedantic", "-Wshadow", "-Wcast-align", "-Wlogical-op", "-Wno-unused-parameter", "-Weffc++", "-Wextra", "-Wconversion", "-Wsign-conversion". It does seem like a mistake to have `signed char` and `unsigned char` display as characters rather than numbers, since `char` is a distinct type. And so `char` could display as a character and the other two as integers. Wish you can change this, or at least have a warning, because functions fine for higher bitted integers. Thanks. OE