Для следующего кода:
struct B
{
void g()
{
[]() { B::f(); }();
}
static void f();
};
g ++ 4.6 выдает ошибку:
test.cpp: в лямбда-функции:
test.cpp: 44: 21: error: 'this' не было захвачено для этой лямбда-функции
(Интересно, что g ++ 4.5 прекрасно компилирует код).
Это ошибка в g ++ 4.6 или нетдействительно необходимо зафиксировать параметр 'this', чтобы иметь возможность вызывать статическую функцию-член?Я не понимаю, почему так должно быть, я даже уточнил звонок с B::
.