C ++ '03 Standardı 2.3 / 1'e göre:
Başka herhangi bir işlem gerçekleşmeden önce, aşağıdaki üç karakterlik dizilerden birinin ("trigraf dizileri") her bir oluşumu, Tablo 1'de belirtilen tek karakterle değiştirilir.
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
Gerçek hayatta bu, kodun printf( "What??!\n" );
yazdırmayla sonuçlanacağı anlamına gelir, What|
çünkü karakterle ??!
değiştirilen bir trigraf dizisidir |
.
Sorum şu, trigrafları kullanmanın amacı nedir? Trigraf kullanmanın herhangi bir pratik avantajı var mı?
UPD : Cevaplarda, bazı Avrupa klavyelerinin tüm noktalama karakterlerine sahip olmadığı, bu nedenle ABD dışındaki programcıların günlük yaşamda trigrafları kullanmak zorunda olduğu belirtildi.
UPD2 : Visual Studio 2010'da trigraph desteği varsayılan olarak kapalıdır.