Zweck der Trigraph-Sequenzen in C ++?
Gemäß C ++ '03 Standard 2.3 / 1:
Vor jeder anderen Verarbeitung wird jedes Auftreten einer der folgenden Folgen von drei Zeichen ("Trigraph-Folgen") durch das in Tabelle 1 angegebene einzelne Zeichen ersetzt.
----------------------------------------------------------------------------
| trigraph | replacement | trigraph | replacement | trigraph | replacement |
----------------------------------------------------------------------------
| ??= | # | ??( | [ | ??< | { |
| ??/ | \ | ??) | ] | ??> | } |
| ??’ | ˆ | ??! | | | ??- | ˜ |
----------------------------------------------------------------------------
Im wirklichen Leben bedeutet das diesen Codeprintf( "What??!\n" );
wird gedrucktWhat|
da??!
ist eine Trigraph-Sequenz, die durch die ersetzt wird|
Charakter.
Meine Frage ist, welchen Zweck die Verwendung von Trigraphen hat. Gibt es einen praktischen Vorteil bei der Verwendung von Trigraphen?
UPD: In den Antworten wurde erwähnt, dass einige europäische Tastaturen nicht alle Interpunktionszeichen enthalten, sodass Programmierer außerhalb der USA im Alltag Trigraphen verwenden müssen?
UPD2: In Visual Studio 2010 ist die Trigraph-Unterstützung standardmäßig deaktiviert.