title: How to pass arbitrary code block to C macro as a param
body: <p>I want to create a macro that will accept arbitrary code block as its parameter like </p>
  
  <pre><code>FOR_VECTOR( type, vect, code_block ) \
    for( vector&lt;type&gt;::iterator i=vect.begin(); i!=vect.end(); ++i ) { \
      code_block; \
    }
  </code></pre>
  
  <p>The problem is the code block in parameter, which may contain arbitrary number of <code>,</code> and  <code>)</code> characters.</p>
  
  <p>Is there any good solution?</p>