title: Function-like macro not accepting nested #define
body: <p>I am using macros to determine a variable's real type based on a pattern, and I am getting some weird macro errors that I do not understand:</p>
  <pre><code>a.cpp:15:4: error: '#' is not followed by a macro parameter
                  #define USING_INTEGER\
                   ^
  a.cpp:15:11: error: unknown type name 'USING_INTEGER'
                  #define USING_INTEGER\
                          ^
  a.cpp:16:2: error: expected unqualified-id
          else if (matchRegex(DOUBLE_REGEX, val))\
          ^
  3 errors generated.
  </code></pre>
  <p>Why is this happening? I have no idea, please provide some help if you know why.</p>
  <pre class="lang-cpp prettyprint-override"><code>#include &quot;example_3.cpp&quot;
  #include &lt;regex&gt;
  
  std::string INT_REGEX = &quot;^[-+]?\\d+$&quot;,
              DOUBLE_REGEX = &quot;^[-+]?\\d+\\.\\d?$&quot;,
              BOOLEAN_REGEX = &quot;^(true|false)$&quot;;
  
  bool matchRegex(std::string pattern, std::string inputString) {
      std::regex expression(pattern);
      return std::regex_match(inputString, expression);
  }
  
  #define determineType(var)\
      if (matchRegex(INT_REGEX, val))\
          #define USING_INTEGER\
      else if (matchRegex(DOUBLE_REGEX, val))\
          #define USING_DOUBLE\
      else if (matchRegex(BOOLEAN_REGEX, val))\
          #define USING_BOOL\
      else\
          #define USING_RAW
  </code></pre>