title: C++ macro with variable number of arguments
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/679979/c-c-how-to-make-a-variadic-macro-variable-number-of-arguments">C/C++: How to make a variadic macro (variable number of arguments)</a>  </p>
  </blockquote>
  
  
  
  <p>I need macro that will expand in a array that contains it's arguments. For example:</p>
  
  <pre><code>#define foo(X0) char* array[1] = {X0}
  #define foo(X0, X1) char* array[2] = {X0, X1}</code></pre>
  
  <p>and so on. My problem is that I need to use foo with variable number of arguments, so I want to be able to use foo("foo0") but also to use foo("foo0", "foo1", "foo2"..."fooN"). I know it's possible to have:</p>
  
  <pre><code>#define foo(...)
  #define foo_1(X0) ..
  #define foo_2(X0, X1) ..
  #define foo_3(X0, X1, X2) ..
  #define foo_N(X0, X1, ... XN) ..
  </code></pre>
  
  <p>And use ____VA_ARGS____, but I don't know how may I expand foo in foo_k macro depending on it's parameter count? Is this possible?</p>