cpp 预处理器无法识别 UTF-32 字符串
cpp preprocessor doesn’t recognise UTF-32 string
我正在做一些编译器研究工作。对于此代码:
static const unsigned char *dir= U"pragma dependency";
cpp4.2
在 Ubuntu 14 上工作,而 cpp6
在 Ubuntu 16 上会抛出错误。如果删除U
,则没关系。
那么cpp6
有什么问题呢?
更新:我在C
项目中测试了此代码,没有错误。如果它在一个C++
项目中,那么下面提到的人就是这种情况。
你的编译器没有任何问题。当你在字符串文字前面加上U
时,这意味着它将是一个const char32_t
数组,而不是一个const unsigned char
数组
您必须将代码更改为
static const char32_t *dir= U"pragma dependency";
相关文章:
- HEX值到wchar_t字符(UTF-8)的转换
- 提升 ASIO 无法识别计时器对象
- 从udp接收帧对于人脸识别来说太慢
- C++读取和写入 UTF-32 文件
- 在这种情况下,UTF-16 和 UTF-32 的 BOM 是强制性的
- QT 无法识别 UTF-8 编码,适用于其他所有位置
- 在 Linux 中将 UTF-32 宽字符转换为 UTF-16 宽字符以获取补充平面字符
- cpp 预处理器无法识别 UTF-32 字符串
- 如何使Windows 7支持12000(UTF-32)代码页或1200(UTF-16)代码页
- 将 UTF-8 转换为 UTF-32,预先计算每个'chars'数
- std::wstring在Windows上支持UTF-16和UTF-32吗
- 在C++内部使用UTF-8与UTF-16与UTF-32
- Linux控制台的国际UTF-32字符串输出
- 哪些开源C或c++库可以将任意UTF-32转换为NFC
- 读取Unicode UTF-32文件到wstring
- c++是否支持除UTF-8、UTF-16和UTF-32以外的字符编码之间的转换?
- 扩展'isalnum'以识别 UTF-8 变音符号
- 将UTF-32字符打印到终端
- 如何在Linux上使用std库从utf-16转换为utf-32
- 在使用STL的迭代器上使用UTF-8到UTF-32