Selon la norme C ++ '03 2.3 / 1:
Avant tout autre traitement, chaque occurrence de l'une des séquences suivantes de trois caractères («séquences de trigraphes») est remplacée par le caractère unique indiqué dans le tableau 1.
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
Dans la vraie vie, cela signifie que le code printf( "What??!\n" );
entraînera une impression What|
car ??!
c'est une séquence de trigraphe qui est remplacée par le |
caractère.
Ma question est à quoi sert les trigraphes? Y a-t-il un avantage pratique à utiliser les trigraphes?
UPD : Dans les réponses, il a été mentionné que certains claviers européens n'ont pas tous les caractères de ponctuation, donc les programmeurs non américains doivent utiliser des trigraphes dans la vie quotidienne?
UPD2 : Visual Studio 2010 a la prise en charge des trigraphes désactivée par défaut.