Is a naked char32_t signed or unsigned?

c++, c++11, char32-t

Solution

From the standard (pre-C++11 draft n3290, or post-C++11 draft n3337) §3.9.1 Fundamental types:

Types `char16_t` and `char32_t` denote distinct types with the same size, signedness, and alignment as `uint_least16_t` and `uint_least32_t`, respectively, in `<stdint.h>`, called the underlying types.

`uint_least16_t` and `uint_least32_t` are both unsigned (from §18.4.1 Header `<cstdint>` synopsis), so same for `char16_t` and `char32_t`.

Problem

Similarly, is a naked `char16_t` signed or unsigned? Is it implementation defined?

Original source