title: C++ Preprocessor string literal concatenation
body: <p>I found <a href="https://stackoverflow.com/questions/1476892/poster-with-the-8-phases-of-translation-in-the-c-language">this</a> regarding how the <strong>C</strong> preprocessor should handle string literal concatenation (phase 6). However, I can not find anything regarding how this is handled in C++ (does C++ use the <strong>C</strong> preprocessor?).</p>
  
  <p>The reason I ask is that I have the following:</p>
  
  <pre><code>const char * Foo::encoding = "\0" "1234567890\0abcdefg";
  </code></pre>
  
  <p>where <code>encoding</code> is a static member of class <code>Foo</code>. Without the availability of concatenation I wouldnt be able to write that sequence of characters like that.</p>
  
  <pre><code>const char * Foo::encoding = "\01234567890\0abcdefg";
  </code></pre>
  
  <p>Is something entirely different due to the way <code>\012</code> is interpreted.</p>
  
  <p>I dont have access to multiple platforms and I'm curious how confident I should be that the above is always handled correctly - i.e. I will always get <code>{ 0, '1', '2', '3', ... }</code></p>