cout可以处理字符串(也称为basic_string<char>
)和所有数字类型(int
,char
,unsigned char
,double
等)。但是它无法处理basic_string<unsigned char>
。
#include <iostream>
#include <string>
int main()
{
std::basic_string<unsigned char> zzz(3, 'z');
std::cout << zzz << std::endl;
return 0;
}
这段代码无法通过编译:
error: invalid operands to binary expression ('ostream' (aka 'basic_ostream<char>') and 'std::basic_string<unsigned char>')
我希望这个行为与字符串相同。难道 ostream 不支持 std::basic_string<unsigned char>
是有原因的吗?