Назначение последовательностей триграфа в C ++?

Согласно стандарту C ++ '03 2.3 / 1:

Before any other processing takes place, each occurrence of one of the following sequences of three characters (“trigraph sequences”) is replaced by the single character indicated in Table 1.

----------------------------------------------------------------------------
| trigraph | replacement | trigraph | replacement | trigraph | replacement |
----------------------------------------------------------------------------
| ??=      | #           | ??(      | [           | ??<      | {           |
| ??/      | \           | ??)      | ]           | ??>      | }           |
| ??’      | ˆ           | ??!      | |           | ??-      | ˜           |
----------------------------------------------------------------------------

В реальной жизни это означает, что кодprintf( "What??!\n" ); приведет к печатиWhat| так как??! последовательность триграфа, которая заменяется| персонаж.

My question is what purpose of using trigraphs? Есть ли практическое преимущество использования триграфов?

UPDВ ответах было упомянуто, что на некоторых европейских клавиатурах нет всех знаков препинания, поэтому неамериканским программистам приходится использовать триграфы в повседневной жизни?

UPD2: Visual Studio 2010 по умолчанию отключил поддержку триграфа.

Ответы на вопрос(9)

Ваш ответ на вопрос