I do not think that you will earn initialization, because she has few opportunities for her work. The problem is that the initialization you use in your example should not work: the string literal u"..."gives an array of objects char16_t const, and you want to initialize it with a pointer:
char16_t const* c16 = u"...";
, char16_t char16_t. , , -, . , , , char16_t, , char16_t. , 16 , wchar_t 32 .
#define CONCAT(a,b) a##b
#if defined(HAS_C16)
# define C16S(s) CONCAT(u,s)
#else
# define C16S(s) reinterpret_cast<char16_t const*>(CONCAT(L,s));
struct char16_t
{
unsigned short value;
};
#endif
int main()
{
char16_t const* c16 = C16S("...");
}
, , . .