1. std::function 이용하기
먼저 std::function으로 변수를 선언해두고 lambda에서 캡쳐해가는 방법입니다.
간단한 방법이지만 std::function은 lambda만 쓰는 것보다 무겁기 때문에 다른 방법도 알아봅시다.
2. lambda만 사용하려면?
인자로 lambda 자신을 넘겨주는 방법입니다.
다만 값을 얻으려면 factorial(5, factorial) 이런 식으로 사용해야 되므로 좀 지저분해 보이는군요.
이것도 없애봅시다.
lambda로 한번더 감싸니 깔끔해졌네요^^
저만 그런가요ㅋㅋ
3. 성능 향상?
factorial 값을 얻을 때마다 재귀로 처리하는 건 너무 느려보이네요.
미리 계산한 값들을 캐시에 저장해놓고 나중에 똑같은 값을 요청하면 O(1)으로 빠르게 가져가면 됩니다ㅎㅎ
해당 댓글은 삭제되었습니다.
factorial 구하는게 목적이 아니라 만드는 방법을 소개하는게 목적이었어요...
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0200r0.html
람다 재귀는 이런거 만들어 쓰면 편함
요 방법대로 구현한 이진트리 순회하기
https://godbolt.org/z/Gr7h3W
모던하면서도 아닌거같은 오묘한 코드군요'