Назначение последовательностей триграфа в 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" );&nbsp;приведет к печатиWhat|&nbsp;так как??!&nbsp;последовательность триграфа, которая заменяется|&nbsp;персонаж.

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

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

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