Зачем нужен wchar_t? Чем оно выше короткого (или __int16 или чего-то еще)?
В мире C ++ wchar_t
- это его собственный тип (я думаю, что это typedef
в C), поэтому вы можете перегрузить функции, основываясь на этом. Например, это позволяет выводить широкие символы, а , а не - выводить их числовые значения. В VC6, где wchar_t
было просто typedef
для unsigned short
, этот код
wchar_t wch = L'A'
std::wcout << wch;
выдаст 65
, потому что
std::ostream<wchar_t>::operator<<(unsigned short)
был вызван. В более новых версиях VC wchar_t
является отдельным типом, поэтому
std::ostream<wchar_t>::operator<<(wchar_t)
вызывается, и это выводит A
.