title: Pointer in macro parameter list
body: <p>I am currently attempting to define a function based on a compiler flag. If the TRACE flag is set, then I want to define a macro to pass information to a trace component.</p>
  
  <pre><code>#define TRACERPTR(Reporter * pReporter, traceComponent eComponent, traceLevel eLevel, string sFormat, formatArgs...) \
  if (pReporter != NULL) { pReporter-&gt;trace(eComponent, eLevel, sFormat, ##formatArgs); }
  </code></pre>
  
  <p>Reporter is a class, defined in the same .h file, above this macro. I need to pass a pointer of a reporter object, which is then used to call the trace function.</p>
  
  <p>However, I get a compiler error: </p>
  
  <blockquote>
    <p>error: "*" may not appear in macro
    parameter list</p>
  </blockquote>
  
  <p>I was curious as to what would occur if I just removed the "*" -- which results in the error "macro parameters must be comma-separated".</p>
  
  <p>Any idea as to what I am doing wrong here?</p>