I don't know what C++ standard you use, but it's not true in C++11, which says at http://en.cppreference.com/w/cpp/language/types
I wouldn't say it's not true. char is still implied to be unsigned, but it is a distinct type from unsigned char for compiler.
If you perform numeric operations with char, it is gonna result to same value as if with unsigned char. Also if you compare char and unsigned char memory bits, they are gonna match for every value. They are just considered distinct types, so "unsigned char" in c++ code is just a water for compilation mill.
Whether char is signed or not is up to the implementation. Hell, modern compilers even let you choose, e.g. gcc with -funsigned-char and -fsigned-char.