C++ char16_t is guaranteed to never use less bits than char and to be no less than 16 bits wide. This means that it can successfully store any UCS-2 character value.
Character literal must use single quotes preceding with the letter u. It is also possible to use octal or hexadecimal representation to produce literals. Here is an example;
char16_t c1 = u'ё';
char16_t = u'ab';
char16_t = u'\123';
char16_t = u'\xA9';
char16_t is considered to be enumerable (thus you can use characters in constructs like switch).
Other C++ data types storing symbols
- char no less than 8 bits, one byte.
- char32_t no less than 32 bits, no less than char16_t
- wchar_t whatever the largest block of addressable memory happens to be on the system