2020/06/26

C++ 람다(Lambda) 함수 재귀호출

람다 함수를 재귀호출을 하려면 함수를 auto로 생성하면 안되고 std::function으로 생성해야 한다.
1
2
3
4
5
6
7
8
9
10
std::function< int (int)> fibonacci = [&fibonacci](int nValue) -> int
{
    if ( nValue <= 0 ) return 0;
    if ( nValue == 1 ) return 1;
 
    return fibonacci(nValue - 1) + fibonacci(nValue - 2);
};
 
int nResult = fibonacci(10);
TRACE("Fibonacci: %d\n", nResult);

No comments :

Post a Comment