Подтвердить что ты не робот

В чем причина, позволяющая избежать "?"?

От 2.13.2/3

Двойная кавычка " и вопросительный знак ?, могут быть представлены как или с помощью управляющих последовательностей \" и \? [...].

Проще говоря, следующее:

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

представляют один и тот же символ. Зачем лечить эти два (особенно ?) иначе, чем другие символы?

4b9b3361

Ответ 1

\" дает согласованность между одноцилиндными литералами символов и строками с двойными кавычками (они определены для использования тех же управляющих последовательностей, в результате в обоих случаях могут использоваться \' и \"). Я немного догадываюсь, но я считаю, что комитет просто подумал, что слишком много беспокоиться о том, чтобы определить разные escape-последовательности в каждом, без какой-либо выгоды и, возможно, небольшой ущерб.

\? заключается в том, чтобы избежать триграфов: ??= является триграфом, ?\?= не является.