C ++ '03 Standard 2.3 / 1によると:
他の処理が行われる前に、以下の3つの文字のシーケンス(「3文字表記シーケンス」)が出現するたびに、表1に示されている単一の文字に置き換えられます。
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
実生活では、これは、文字で置き換えられた3文字表記シーケンスであるため、コードprintf( "What??!\n" );
が印刷されることを意味します。What|
??!
|
私の質問は、トリグラフを使用する目的は何ですか?トリグラフを使用する実用的な利点はありますか?
UPD:回答では、一部のヨーロッパのキーボードには句読点文字がすべて含まれていないため、米国以外のプログラマーは日常生活で3文字表記を使用する必要があると述べられました。
UPD2:Visual Studio 2010では、デフォルトで3文字表記のサポートがオフになっています。