Para el siguiente código:lambdas requieren capturar 'esto' para llamar a la función de miembro estático?
struct B
{
void g()
{
[]() { B::f(); }();
}
static void f();
};
g ++ 4.6 da el error:
test.cpp: In lambda function:
test.cpp:44:21: error: 'this' was not captured for this lambda function
(Curiosamente, g ++ 4.5 compila la multa de código).
¿Esto es un error en g ++ 4.6, o es realmente necesario capturar el parámetro 'this' para poder llamar a una función miembro estática? No veo por qué debería ser así, incluso califiqué la llamada con B::
.
Eso sería un error. –
Todavía hay un error en GCC 4.7.2. Agregar 'this' como captura sigue funcionando. –
Solucionado en GCC 4.8. – akim