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

What is the rationale in allowing `?` to be escaped?

提问人:Luchian Grigore 提问时间:6/28/2012 更新时间:6/28/2012 访问量:280

问:

从 2.13.2/3 开始

双引号和问号 ,可以表示为 他们自己或通过转义序列和 [...]。"?\"\?

简而言之,以下内容:

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

表示相同的字符。为什么要区别对待这两个(尤其是)与其他角色不同??

C++ 设计语言 -律师

评论


答:

25赞 Steve Jessop 6/28/2012 #1

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

\?是为了避免三元组:是三元组,不是。??=?\?=

评论

2赞 Len Holgate 6/28/2012
\?确实与三叉戟有关,详见 msdn.microsoft.com/en-us/library/bt0y4awe.aspx 解释。