Finalidade das seqüências Trigraph em C ++?

De acordo com o C ++ '03 Standard 2.3 / 1:

Antes que qualquer outro processamento ocorra, cada ocorrência de uma das seguintes seqüências de três caracteres (“seqüências de trigramas”) é substituída pelo único caractere indicado na Tabela 1.

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

Na vida real, isso significa que o códigoprintf( "What??!\n" ); resultará na impressãoWhat| Porque??! é uma sequência de trigramas que é substituída pela| personagem.

Minha pergunta é qual o propósito de usar trigramas? Existe alguma vantagem prática de usar trigraphs?

UPD: Nas respostas foi mencionado que alguns teclados europeus não têm todos os caracteres de pontuação, então os programadores não-americanos têm que usar trigramas na vida cotidiana?

UPD2: Visual Studio 2010 tem suporte a trigraph desativado por padrão.

questionAnswers(9)

yourAnswerToTheQuestion