为什么相同的类型不同?

The*_* do 3 c++ metaprogramming

为什么这个(char在我的实现上签名):

cout << std::is_same< char,signed char>::value;

输出错误?

Bo *_*son 6

这三种类型在不同时间引入.

来自C99理性:

char指定了三种类型:
signedplain,和unsigned.char根据实施方式,平原可以表示为有符号或无符号,如在先前实践中那样.该类型signed char是在C89中引入的,以便在那些实现plain charas的系统上提供一个单字节有符号整数类型unsigned char.

它们必须在C++中保持不同的类型,以允许重载char是可移植的.