История изменений
Исправление rumgot, (текущая версия) :
Все правильно.
C++17 Черновик стандарта n4659.
6.9.1
Fundamental types
[basic.fundamental]
Objects declared as characters (char) shall be large enough to store any member of the implementation’s basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types, collectively called narrow character types...
Т.е. стандарт явно говорит, что это три разных типа.
Исправление rumgot, :
Все правильно.
C++17 Черновик стандарта n4659.
6.9.1
Fundamental types
[basic.fundamental]
Objects declared as characters (char) shall be large enough to store any member of the implementation’s basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation-defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types, collectively called narrow character types...
Исходная версия rumgot, :
Все правильно.