title: Cleaning up C/C++ code reveals problems with variadic macros
body: <p>We're doing some code cleanup, fixing signed/unsigned comparisons, running static analysis, etc, on the code base of C, C++, and Java.</p>
  
  <p>One of the warnings we're getting is</p>
  
  <pre><code>warning: ISO C does not permit named variadic macros
  </code></pre>
  
  <p>And its companion warning</p>
  
  <pre><code>warning: ISO C99 requires rest arguments to be used
  </code></pre>
  
  <p>Now, in the C code I used the <a href="https://stackoverflow.com/q/6750512/2815">C99 standard variadic macro</a> to fix the problem, but in the C++ code, what is the correct answer? Using the same C99 style results in a different warning</p>
  
  <pre><code>warning: anonymous variadic macros were introduced in C99 
  </code></pre>
  
  <p>For which I don't see any answers.</p>
  
  <p>We're using GCC (G++) 4.4.3 in Linux.</p>
  
  <p>I'm hoping there is some flag, or other method that can correct, or disable it for the specific section of code - but its for the logging which is used in almost every file...</p>