본문 바로가기

프로그래밍 언어 노트/C++ | Modern C++

[Modern C++] C++ 의 커링

#include <string>
#include <iostream>
using namespace std;

int AddThreePara(int x, int y, int z)
{
    return x + y + z;
}


int main()
{   

    auto curry = [](int x, int y) { return AddThreePara(x, y, 1); };

    cout << curry(1, 2) << endl;
    return 0;
}

간단한 예제.

auto와 람다식으로 간단히 구현가능하다.

정확히는 커링 (여기선 부분함수) 은 아니고.. "커링처럼" 동작하는 새로운 람다함수일 뿐이다.

함수를 만들때 파라미터를 하나씩 받도록해서 연속해서 만들면 커링이 될듯하다.

C# 에서도 람다식은 val 로 지정이 안되는데 c++ 에서 오히려 auto 로 지정이 된다. 신기하네..

 

728x90