title: Concatenate two string literals
body: <p>I am reading Accelerated C++ by Koenig. He writes that "the new idea is that we can use + to concatenate a string and a string literal - or, for that matter, two strings (but not two string literals).</p>
  
  <p>Fine, this makes sense I suppose. Now onto two separate exercises meant to illuminate this . </p>
  
  <p>Are the following definitions valid?</p>
  
  <pre><code>const string hello = "Hello";
  
  const string message = hello + ",world" + "!";
  </code></pre>
  
  <p>Now, I tried to execute the above and it worked! So I was happy.</p>
  
  <p>Then I tried to do the next exercise; </p>
  
  <pre><code>const string exclam = "!";
  
  const string message = "Hello" + ",world" + exclam;
  </code></pre>
  
  <p>This did not work. Now I understand it has something to do with the fact that you cannot concatenate two string literals, but I don't understand the semantic difference between why I managed to get the first example to work (isn't ",world" and "!" two string literals? Shouldn't this not have worked?) but not the second.</p>