Propósito de las secuencias de Trigraph en C ++?

Según el estándar 2.3 / 1 de C ++ '03:

Antes de que se realice cualquier otro procesamiento, cada aparición de una de las siguientes secuencias de tres caracteres ("secuencias trigráficas") se reemplaza por el carácter individual indicado en la Tabla 1.

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

En la vida real eso significa que el código.printf( "What??!\n" ); resultará en la impresiónWhat| porque??! Es una secuencia trigráfica que se sustituye por la| personaje.

Mi pregunta es ¿qué propósito tiene usar trigraphs? ¿Hay alguna ventaja práctica de usar trigraphs?

UPD: En las respuestas se mencionó que algunos teclados europeos no tienen todos los caracteres de puntuación, ¿por lo que los programadores que no son de los EE. UU. Tienen que usar trigraphs en la vida cotidiana?

UPD2: Visual Studio 2010 tiene la compatibilidad con trigraph desactivada de forma predeterminada.

Respuestas a la pregunta(9)

Su respuesta a la pregunta