允许`?`被转义的理由是什么?

时间:2012-06-28 09:05:02

标签: c++ language-design language-lawyer

来自 2.13.2 / 3

  

双引号"和问号?可以表示为   他们自己或逃脱序列\"\? [...]。

简单地说,以下内容:

char x = '\?'; //or '\"'
char y = '?';  //or '"'

表示相同的字符。为什么以不同于其他角色的方式对待这两个(尤其是?)?

1 个答案:

答案 0 :(得分:24)

\"给出了单引号字符文字和双引号字符串文字之间的一致性(它们被定义为使用相同的转义序列,结果\'\"可以用于两者)。我有点猜测,但我认为委员会只是认为在每个中定义不同的逃逸序列太麻烦了,没有任何好处,可以说是轻微的损害。

\?用于避免三字母:??=是三字形,?\?=不是。