Why is wchar_t needed? How is it superior to short (or __int16 or whatever)?
wchar_t
short
__int16
(If it matters: I live in Windows world. I don\'t
See Wikipedia.
Basically, it's a portable type for "text" in the current locale (with umlauts). It predates Unicode and doesn't solve many problems, so today, it mostly exists for backward compatibility. Don't use it unless you have to.