title: Variadic macro warning
body: <p>In C++, variadic macros <code>require at least one argument for the '...'</code>. Consider the function: <code>FOO(a, b, ...);</code> What should I do in case I want both of these calls to be correct and warning-free? <code>FOO(5, 4, "gamma"); FOO(5, 4);</code> I'm using the <code>--pedantic</code> flag, so just suppressing the warning is not an option.</p>
  
  <p>The second one gives a compile-time warning mentioned above. I considered this:</p>
  
  <p>Changing the definition to <code>FOO(a, ...);</code> and splitting the <code>__VA_ARGS__</code> variable (which stands for ...) into <code>b</code> and, if present, into the rest. So the function calls would look like: <code>FOO(5, "4gamma");</code> and <code>FOO(5, "4");</code> This, I think, is not a good option because the splitting is not efficient and the function declaration will not require the <code>b</code> argument, even though its mandatory.</p>
  
  <p>Are there any better ways to get a warning-free compilation?</p>