[c++] 람다 식의 this 캡처
C++ 람다 식은 함수 객체를 생성하기 위한 간단하고 편리한 방법을 제공합니다. 람다 식 내에서 this
포인터를 캡처하는 것은 매우 중요한데, 이를 통해 람다 식이 현재 객체를 참조할 수 있습니다.
람다 식에서 this 캡처하기
일반적으로 람다 식을 사용할 때, 현재 객체를 가리키는 this
포인터를 캡처해야 합니다. 이를 위해 몇 가지 방법이 있습니다.
명시적 this 캡처
class MyClass {
public:
void DoSomething() {
[this]() {
// 람다 식 내에서 this를 사용할 수 있음
// ...
}();
}
};
암시적 this 캡처
람다 식 내에서 멤버함수를 호출할 때는 암시적으로 this
가 캡처됩니다.
class MyClass {
public:
void DoSomething() {
[=]() {
// 람다 식 내에서 멤버함수 호출 시, 암시적으로 this가 캡처됨
// ...
}();
}
};
람다 식 내에서 멤버 변수 참조하기
람다 식 내에서 멤버 변수를 참조할 때에도 this
를 사용하여 현재 객체를 가리킬 수 있습니다.
class MyClass {
private:
int m_value = 5;
public:
void DoSomething() {
[this]() {
std::cout << "멤버 변수 값: " << this->m_value << std::endl;
}();
}
};
마무리
람다 식 내에서 this
를 캡처하여 현재 객체를 참조하는 방법에 대해 알아보았습니다. this
를 올바르게 캡처함으로써, 람다 식에서 멤버 변수 및 함수에 접근할 수 있습니다.
더 많은 정보는 C++ 레퍼런스에서 확인할 수 있습니다.