:lambdas는 정적 멤버 함수를 호출하기 위해 'this'를 캡처해야합니까? 다음 코드
struct B
{
void g()
{
[]() { B::f(); }();
}
static void f();
};
g ++ 4.6 오류 준다 :
test.cpp: In lambda function:
test.cpp:44:21: error: 'this' was not captured for this lambda function
는 (흥미롭게도, 4.5 g ++ 코드를 컴파일 미세 참조).
이것은 g ++ 4.6의 버그입니까? 아니면 정적 멤버 함수를 호출 할 수 있도록 'this'매개 변수를 캡처해야합니까? 나는 그것이어야하는 이유를 모르겠다. 나는 심지어 B::
으로 전화를 걸었다.
이는 버그 일 수 있습니다. –
GCC 4.7.2의 여전히 버그. 'this'를 캡처로 추가하면 여전히 작동합니다. –
GCC 4.8에서 수정되었습니다. – akim