title: Can I Conditionally Use More Than 1 Argument?
body: <p>So this code works well as an example:</p>
  
  <pre><code>#ifdef DEBUG
  #define DECLARE_DEBUG_PARAM(x) x
  #define PASS_DEBUG_PARAM(x) x
  #else
  #define DECLARE_DEBUG_PARAM(x) void
  #define PASS_DEBUG_PARAM(x)
  #endif
  
  int foo(DECLARE_DEBUG_PARAM(const bool param)) {
  #ifdef DEBUG
      if(param) {
          cout &lt;&lt; "DEBUG true\n";
      } else {
          cout &lt;&lt; "DEBUG false\n";
      }
  #else
      cout &lt;&lt; "RETAIL\n";
  #endif
  }
  
  int main() {
      foo(PASS_DEBUG_PARAM(true));
  }
  </code></pre>
  
  <p><a href="http://ideone.com/LWVZvG" rel="nofollow noreferrer"><kbd>Live Example</kbd></a></p>
  
  <p>But I want to use this for a second parameter, for example: <code>int foo(const int param1, DECLARE_DEBUG_PARAM(const int param2))</code> Obviously that doesn't work for my current definition of <code>DECLARE_DEBUG_PARAM</code>, I get the error:</p>
  
  <blockquote>
    <p>error: invalid use of type <code>void</code> in parameter declaration</p>
  </blockquote>
  
  <p>Is there some noop parameter type that I can use which would allow this?</p>