Why is wchar_t needed? How is it superior to short (or __int16 or whatever)?
(If it matters: I live in Windows world. I don\'t
The reason there's a wchar_t is pretty much the same reason there's a size_t or a time_t - it's an abstraction that indicates what a type is intended to represent and allows implementations to chose an underlying type that can represent the type properly on a particular platform.
Note that wchar_t doesn't need to be a 16 bit type - there are platforms where it's a 32-bit type.