On Tue, Mar 3, 2009 at 2:48 PM, Peter Krefting <peter@xxxxxxxxxxxxxxxx> wrote: > Dmitry Potapov: > >> The C Standard requires that the type wchar_t is capable of representing >> any character in the current locale. If Windows uses UTF-16 as internal >> encoding (so, it can work with symbols outside of the BMP), it means you >> cannot have 16-bit wchar_t and be compliant with the C standard... > > No, that's not quite correct. wchar_t is defined to be "an integer type > whose range of values can represent distinct codes for all members of the > largest extended character set specified among the supported locales". Since > Windows defines all local character sets as Unicode-based, having wchar_t > defined as Unicode means that it can represent everything. No, it does not, if you have wchar_t that is only 16-bit wide, because characters outside of the BMP have integer values in Unicode greater than 65535... Dmitry -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html