2020/06/26

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

람다 함수를 재귀호출을 하려면 함수를 auto로 생성하면 안되고 std::function으로 생성해야 한다.
	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