title: Why are string literals parsed for trigraph sequences in Gnu gcc/g++?
body: <p>Consider this innocuous C++ program:</p>
  
  <pre><code>#include &lt;iostream&gt;
  int main() {
    std::cout &lt;&lt; "(Is this a trigraph??)" &lt;&lt; std::endl;
    return 0;
  }
  </code></pre>
  
  <p>When I compile it using g++ version 5.4.0, I get the following diagnostic:</p>
  
  <pre><code>me@my-laptop:~/code/C++$ g++ -c test_trigraph.cpp
  test_trigraph.cpp:4:36: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
     std::cout &lt;&lt; "(Is this a trigraph??)" &lt;&lt; std::endl;
                                       ^
  </code></pre>
  
  <p>The program runs, and its output is as expected:</p>
  
  <pre><code>(Is this a trigraph??)
  </code></pre>
  
  <p>Why are string literals parsed for trigraphs at all?</p>
  
  <p>Do other compilers do this, too?</p>