Trigraphs are sequences of three characters (introduced by two consecutive question marks) that the compiler replaces with their corresponding punctuation characters. You can use trigraphs in C source files with a character set that does not contain convenient graphic representations for some punctuation characters.
C++17 removes trigraphs from the language. Through C++14, trigraphs are supported as in C.
The following table shows the nine trigraph sequences.
Trigraph | Punctuation Character
--- | ---
??= | #
??( | [
??/ | \\
??) | ]
??' | ^
??< | {
??! | \|
??> | }
??- | ~