在c++ 11中支持可选的通用字符名
Support for Universal-Character-Names optional in C++11?
在筛选新的c++ 11规范时,我找不到任何东西说通用字符名的支持是实现定义的,就像devx提到的那样。我找不到任何参考实现定义的行为。只有2.14.3.(5)说明了在可执行文件中应该写些什么,但是我看不到其他内容。
我是否假设一个符合标准的c++ 11编译器将因此具有对unnnn
和Unnnnnnnn
的支持?
我不确定我完全理解你的问题,但是文字说明符u
和U
只用于指定整型数据类型-没有说什么构成字符(或者更不用说假定哪种编码)。总结:
char a1 = 'a', b1[] = "Hello";
wchar_t a2 = L'a', b2[] = L"Hello";
char16_t a3 = u'u1234', b3[] = u"Hello uABCD";
char32_t a4 = U'U5678ABCD', b4[] = U"Hello U10325476"; // not actually valid codepoints
最终如何处理这些类型完全取决于您。文字说明符L
、u
和U
只是允许你在代码中放置文字常量,它们已经存在了一段时间(尽管我认为u"..."
和U"..."
字符串语法只在c++ 0x中正式发布,类型char16_t
和char32_t
也是如此,它们是真正的新类型,而不仅仅是别名)。
我的理解是c++ 98已经是这样了。只是在这一点上兼容的编译器很少。
相关文章:
- C++字符*缓冲区的大小
- HEX值到wchar_t字符(UTF-8)的转换
- 为什么 Serial.println(<char[]>);返回随机字符?
- 我的字符计数代码计算错误.为什么
- 字符串-C++后显示的随机字符
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 如何在C++中从字符串中分割字符
- 为什么msgrcv()将垃圾字符馈送到缓冲区
- 指向指向字符数组的指针数组的指针
- 如何用转义符替换字符串中的所有特殊字符
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 比较字符数组
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 从矢量<无符号字符>转换为字符* 包括垃圾数据
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何在C++中确定文本文件中的元素是字符还是数字
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++中无符号字符溢出
- 使用无符号字符数组有效存储内存