说说char!=signed char!=unsigned char吧
由于前面有人说如何比较两种类型是不是一样的。受Modern C++ Design的影响(算是抄吧),写了出来,却由于找不到原来的帖子没有发表^_^
template <typename T, typename U>
struct SameType
{
static const bool isSame = false;
};
template <typename T>
struct SameType<T, T>
{
static const bool isSame = true;
};
然后我就去测试了。当测试到string和basic_string <char>时,我试着把basic_string <char>换成basic_string <unsigned char>和signed char,居然发现,只有char是真!其它两个都是假!也就是说char既不与signed char一样,也不与unsigned char一样。
但是,我记得是char和另外两个中的一种是一样的啊!于是我就从Dev-C++里换到BCC5.5里去测试,结果还是一样。(VC7搞不定命令行下的CL,就没有测了)
然后,我去翻TCPL,终于知道是这样的:三种char类型不同,但char要么与signed char行为相同,要么与unsigned char行为相同。