Vēl jau arī fiška, ka wchar_t ne vienmēr ir 16-bit. GCC zem linukšiem vismaz wchar_t ir 32-biti.
Es katrā ziņā neesmu sapratis, kāpēc man būtu jāgrib lietot wchar_t (vai std::wstring). Parasti lietoju std::string ar utf-8 kodējumu, un papildus kādu mazu bibliotēku, kas ļauj darboties ar šo stringu (substr, iteratori) saprotot utf-8 čarus: http://utfcpp.sourceforge.net/ Čakars var vienīgi sanākt, ja gribas lietot Unikodes variantu WinAPI funkcijām. Bet nu utf-8 uz ucs2 var arī relatīvi viegli pārkonvertēt.