예, C++ Lambda 표현식은 std::function을 사용하여 재귀를 지원할 수 있습니다. std::function을 사용하여 Lambda 표현식에 대한 참조를 캡처합니다. 캡처된 참조를 사용하면 람다 식은 자신을 재귀적으로 호출할 수 있습니다.
C++에서 람다 식의 재귀
Lambda 식은 런타임에 익명 함수 개체를 정의할 수 있는 C++의 강력한 기능입니다. 일반적으로 람다 식은 자체 참조를 캡처할 수 없기 때문에 재귀적일 수 없습니다. 그러나 std::function을 사용하여 람다 식의 재귀를 지원하는 기술이 있습니다.
std::function 사용
std::function은 람다 표현식을 포함하여 호출 가능한 모든 개체에 대한 참조를 보유할 수 있는 함수 개체입니다. std::function을 사용하여 람다 식에 대한 참조를 캡처하면 재귀적으로 호출할 수 있는 람다 식을 만들 수 있습니다.
코드 예제
다음 코드 예제에서는 std::function을 사용하여 람다 식의 재귀를 활성화하는 방법을 보여줍니다.
#include <functional> int fibonacci(int n) { std::function<int(int)> fib = [&fib](int n) { if (n <= 1) { return n; } return fib(n - 1) + fib(n - 2); }; return fib(n); } int main() { int result = fibonacci(5); std::cout << "Fibonacci of 5 is: " << result << "\n"; return 0; }
이 예제에서는 람다 식에 대한 참조fib
捕获了对自身 fib
입니다. 이렇게 하면 피보나치 수를 계산하기 위해 자신을 재귀적으로 호출할 수 있습니다.
참고
std::function을 사용하여 람다 식의 재귀를 지원할 수 있지만 재귀를 사용할 때는 여전히 다음 사항에 주의해야 합니다.
위 내용은 C++ 람다 표현식은 재귀를 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!