ansi — Почему в C ++ есть альтернативные токены?

Возможный дубликат:
Почему существуют диграфы в C и C ++?
При чем тут С ??! ??! оператор делать ?!

В C ++ есть альтернативные токены для [] и {}, среди прочих.

Например. компилируется следующий код:

%:include <stdio.h>
int main() <%
printf("Hello World!");
}

Я думал об этом некоторое время, но не мог понять какую-либо применимость, есть ли логическая причина для этого?

2

Решение

Они действительно похмелье от Си. Существовали реализации C, в которых были доступны не все символы (например, некоторые варианты EBCDIC, которые не имеют квадратных скобок).

Обоснование документа C99, раздел 5.2.1.1 Trigraph sequences имеет это сказать:

Последовательности триграфа были введены в C89 как альтернативное написание некоторых символов, чтобы позволить реализацию C в наборах символов, которые не обеспечивают достаточное количество неалфавитной графики.

Символы в репертуаре ASCII, используемые C и отсутствующие в инвариантном репертуаре ISO / IEC 646, #, [, ], {, }, \, |, ~, а также ^

7

Другие решения

Других решений пока нет …