Secondo C ++ '03 Standard 2.3 / 1:
Prima che avvenga qualsiasi altra elaborazione, ciascuna occorrenza di una delle seguenti sequenze di tre caratteri ("sequenze di trigrafia") è sostituita dal singolo carattere indicato nella Tabella 1.
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
Nella vita reale ciò significa che il codice printf( "What??!\n" );
comporterà la stampa What|
perché ??!
è una sequenza trigraph che viene sostituita dal |
carattere.
La mia domanda è quale scopo dell'utilizzo delle trigrafi? C'è qualche vantaggio pratico nell'uso delle trigrafi?
UPD : Nelle risposte è stato menzionato che alcune tastiere europee non hanno tutti i caratteri di punteggiatura, quindi i programmatori non statunitensi devono usare le trigrafi nella vita di tutti i giorni?
UPD2 : Visual Studio 2010 ha il supporto trigraph disattivato per impostazione predefinita.