title: Preprocessor Stringizing Operator with String Literal Prefixes
body: <p>So I want to do the traditional thing to do with the stringizing operator in a macro:</p>
  
  <pre><code>#define FOO(x) foo(#x, (x))
  </code></pre>
  
  <p>However I need to use a string literal prefix: <a href="http://en.cppreference.com/w/cpp/language/string_literal" rel="nofollow">http://en.cppreference.com/w/cpp/language/string_literal</a><br>
  Which is a problem because if I need a UTF-32 string literal I try to do this:</p>
  
  <pre><code>#define FOO(x) foo(U#x, (x))
  </code></pre>
  
  <p>But gcc 4.9.2 complains:</p>
  
  <blockquote>
    <p>error: 'U' was not declared in this scope</p>
  </blockquote>
  
  <p>Is there a way to make the compiler treat the <code>U</code> as a prefix to the stringized macro variable?</p>