title: How to get the definition of a macro as a string literal?
body: <p>Say in a header, which I do not want to read myself but which I do include, I have</p>
  
  <pre><code>#define A B
  #define B C
  </code></pre>
  
  <p>Now</p>
  
  <pre><code>#define STR(name) # name
  </code></pre>
  
  <p>defines a macro that gives me the name of any macro as a string, and</p>
  
  <pre><code>#define EXP_STR(name) STR(name)
  </code></pre>
  
  <p>defines a macro that gives me the full expansion of any macro as a string. So</p>
  
  <pre><code>cout &lt;&lt; STR(A) &lt;&lt; EXP_STR(A) &lt;&lt; endl;
  </code></pre>
  
  <p>will print <code>AC</code>.</p>
  
  <p>Is there any way to get <code>"B"</code> from <code>A</code> using some macros?</p>