gpt4 book ai didi

c++ -\u0052\u0022 是否开始一个原始字符串?

转载 作者:太空狗 更新时间:2023-10-29 23:06:39 24 4
gpt4 key购买 nike

假设我们有以下内容:

\u0052\
\u0022\u0058(Please no?)\u0058\u0022

通用字符名称转换后进行行拼接,结果为

R"X(Please no?)X"

这是一个有效的原始字符串。根据 2.5.3,“在原始字符串的初始和最终双引号字符之间,在阶段 1 和阶段 2 中执行的任何转换都将被还原”:

R"\u0058(Please no?)\u0058"

这仍然是一个有效的原始字符串。

流程真的是这样运作的吗?如果不是,必须更改多少才能使上述内容成为有效的原始字符串?

最佳答案

不,这不是流程的运作方式。

第 2.3 节第 2 段:

... if the hexadecimal value for a universal-character-name outside the c-char-sequence, s-char-sequence, or r-char-sequence of a character or string literal corresponds to a control character ... or to a character in the basic source character set, the program is ill-formed.

所以你的程序格式错误。一些编译器可能会选择按照您指定的方式解析通用字符名称,但这将是非标准扩展。

除此之外,您做对了。如果你写道:

R\
"\u0058(Please no?)\u0058"

\u0058 将被还原。

关于c++ -\u0052\u0022 是否开始一个原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15035002/

24 4 0