C++ #define preprocessor directive is not recognized after "<text>"
<p>I have some problem in connection with C++ in MS VS 2015 Enterprise.</p>

<p>I have got a preprocessor directive, in \Str.h </p>

<pre><code>\\ \Str.h file
Line 96: #define S_COLOR_RED "^1"
</code></pre>

<p>and used it for example at these lines:</p>

<pre><code>\\ \math\Simd.cpp file
Line 1501: idLib::common-&gt;Printf( "   simd-&gt;Memcpy() "S_COLOR_RED"X\n" );
Line 1527: idLib::common-&gt;Printf( "   simd-&gt;Memset() "S_COLOR_RED"X\n" );
</code></pre>

<p>The problem is, if there is a "" before the directive, the C++ wants to use it as user-defined literal, but in fact it is just a simple defined constant.</p>

<p>After changing to the following, it works:</p>

<pre><code>// \math\Simd.cpp
Line 1527: idLib::common-&gt;Printf( "   simd-&gt;Memset() "
Line 1527: idLib::common-&gt;Printf( S_COLOR_RED"X\n" );
</code></pre>

<p>What could cause this? All credit goes for id Tech, because these code pieces from id Tech 4 engine. I haven't made any modification in the original code, just trying to solve errors from the downloaded source.</p>

<p>I tried to search for more information about this problem, without results.</p>

<p>Thank you for your help,
Sanapci</p>