Hi Kevin,
On 18.09.2020 00:49, Kevin Puetz wrote:
In c++11 char16_t is a distinct fundamental type, but in c11 it is merely a typedef in <uchar.h>.
Explicitly mention char16_t only in c++11 (where it is built-in), otherwise define WCHAR to match u"...", without naming char16_t.
Remove WINE_UNICODE_CHAR16; it is now the default when supported.
I like the part that uses __cpp_unicode_literals, it would make our headers much more C++ friendly by default.
I'm less sure if we want __CHAR16_TYPE__. In practice, it will only affect C, which is much less strict about types anyway. We assume in Wine code base that WCHAR is 16-bit unsigned integer. If __CHAR16_TYPE__ is something else, we shouldn't use it. If it's the same, then there is little point in using it. I think that the original problem is fixed by __cpp_unicode_literals change alone, so how about doing just that?
Thanks,
Jacek