From: Jacek Caban Subject: Re: [PATCH v2 1/4] include: Fix undefined char16_t in C11. Message-Id: Date: Wed, 23 Sep 2020 16:44:26 +0200 In-Reply-To: <20200917224905.2465-1-PuetzKevinA@JohnDeere.com> References: <20200917224905.2465-1-PuetzKevinA@JohnDeere.com> 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 . > > 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