Cel sekwencji Trigraph w C ++?
Według C ++ '03 Standard 2.3 / 1:
Przed jakimkolwiek innym przetwarzaniem każde wystąpienie jednej z następujących sekwencji trzech znaków („sekwencje trigraficzne”) zastępuje się pojedynczym znakiem wskazanym w tabeli 1.
----------------------------------------------------------------------------
| trigraph | replacement | trigraph | replacement | trigraph | replacement |
----------------------------------------------------------------------------
| ??= | # | ??( | [ | ??< | { |
| ??/ | \ | ??) | ] | ??> | } |
| ??’ | ˆ | ??! | | | ??- | ˜ |
----------------------------------------------------------------------------
W prawdziwym życiu oznacza to ten kodprintf( "What??!\n" );
spowoduje drukowanieWhat|
bo??!
to sekwencja trigraficzna, która jest zastąpiona przez|
postać.
Moje pytanie brzmi: jaki jest cel korzystania z trigrafów? Czy jest jakaś praktyczna korzyść z używania trigrafów?
UPD: W odpowiedziach wspomniano, że niektóre europejskie klawiatury nie mają wszystkich znaków interpunkcyjnych, więc programiści spoza USA muszą używać trigrafów w życiu codziennym?
UPD2: Visual Studio 2010 ma domyślnie wyłączoną obsługę trigraph.