반응형
람다는 정적 멤버 함수를 호출하기 위해 '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
(흥미롭게도 g ++ 4.5는 코드를 잘 컴파일합니다).
이것은 g ++ 4.6의 버그입니까, 아니면 정적 멤버 함수를 호출 할 수 있도록 'this'매개 변수를 캡처해야합니까? 왜 그래야하는지 모르겠지만 B::
.
동의합니다. 잘 컴파일되어야합니다. 수정을 위해 (아직 모르는 경우) 참조 캡처를 추가하면 gcc 4.6에서 잘 컴파일됩니다.
struct B
{
void g()
{
[&]() { B::f(); }();
}
static void f() { std::cout << "Hello World" << std::endl; };
};
반응형
'development' 카테고리의 다른 글
"다운 캐스팅"unique_ptr (0) | 2021.01.08 |
---|---|
앱 시작시 이상한 푸시 메시지 수신 (0) | 2021.01.08 |
생성자 참조-제네릭 배열이 생성 될 때 경고 없음 (0) | 2021.01.08 |
git merge : 보관하고 싶은 파일 제거! (0) | 2021.01.08 |
여러 javascript / css 파일 : 모범 사례? (0) | 2021.01.08 |