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_t
uint_least32_t
しかし、これらの名前は、そのような符号なしの型の名前がで始まるという規則に違反しているように見えます。また、などの用語で修飾されていないよう'u'
な数字の使用は、固定幅の型を示します。16
least
それで、私の質問はこれです:私は物事を想像していますか、それともこれらの名前は根本的に欠陥がありますか?