При использовании лямбда-выражения в макросе с несколькими захватами возникает одна из следующих ошибок (Visual Studio 2017) :Error C2143 syntax error: missing ']' before ';'
Error C2958 the left bracket '['
Как я могу избежать этой ошибки?
Пример кода:
#include <functional>
#include <iostream>
#define MYMACRO(lambda) lambda
int main()
{
int a = 13;
int b = 37;
auto lambda = MYMACRO([a, b]() { std::cout << a << b << std::endl; });
lambda();
return 0;
}