[...]> Should we add asWString() and asCWString() ? If so should they return the string encoded in utf-16 or utf-32 on platforms where wchar_t is 32 bits? The string that was passed at initialization? Or should we makes encoding explicit: asUTF16WString(), asUTF32WString()? Concerning the last options, as UTF32 would not be possible on platforms where wchar_t is 2 bytes, this would introduce portability issues...Yep, better to have asWString() and asCWString(), and they always should return string encoded in utf-16.