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.