added UTF16CharTraits and UTF32CharTraits to make everything work on platforms without std::wstring