title: C++ macro with lambda argument using 2+ captured elements generates error
body: <pre><code>foo(const std::function&lt;void()&gt;&amp; functor) {
      ....
  }
  
  #define MACRO_EXAMPLE(functor) foo(functor)
  
  int main() {
      int i = 0, j = 0;
      MACRO_EXAMPLE([i](){}); // works fine
      MACRO_EXAMPLE([i, j](){}); // error: macro "MACRO_EXAMPLE" passed 2 arguments, but takes just 1
    });
  }
  </code></pre>
  
  <p>Why? How to make that a macro understands lambdas?</p>