NB:誰かがこれを主観的なものと呼ぶと確信していますが、それはかなり具体的だと思います。
C ++ 11は、新しいbasic_stringタイプstd::u16stringと、およびstd::u32stringのタイプエイリアスをそれぞれ提供します。std::basic_string<char16_t>std::basic_string<char32_t>
この文脈での部分文字列の使用は、むしろ「UTF-16」"u16"と"u32"「UTF-32」を意味します。これは、C ++にはもちろんテキストエンコーディングの概念がないため、ばかげています。
名前は実際には文字の種類char16_tとを反映していますchar32_tが、これらは間違った名前になっているようです。基になるタイプが署名されていないため、署名されていません。
[C++11: 3.9.1/5]:[..]タイプchar16_tとは、それぞれとchar32_tと同じサイズ、符号、および配置を持つ別個のタイプを示します[..]uint_least16_tuint_least32_t
しかし、これらの名前は、そのような符号なしの型の名前がで始まるという規則に違反しているように見えます。また、などの用語で修飾されていないよう'u'な数字の使用は、固定幅の型を示します。16least
それで、私の質問はこれです:私は物事を想像していますか、それともこれらの名前は根本的に欠陥がありますか?