Generic Programming

커리 반대쪽부터 채우기

hellobird 2019. 3. 30. 15:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
template<typename Func,typename... Args>
auto curry(Func func, Args... args){
 
    return [=]( auto... secondParam){   return func(args..., secondParam...);  };
 
}
 
template<typename Func,typename... Args>
auto curryBackword(Func func, Args... args){
 
    return [=]( auto... secondParam){   return func( secondParam..., args... );  };
 
}
 
 
 
int areaOfRectangle(int length, int width, int option ){
    qDebug() << __func__;
    qDebug() << "len : " << length << "wid : " << width << " op : " << option;
    return length * width;
}
 
auto rect_length5_10(){
    auto length5 = curryBackword(areaOfRectangle, 510);
    return length5;
}
 
 
 
 
 
int main(int argc, char *argv[])
{
 
    auto length5_10 = rect_length5_10();
 
 
    cout << "end main " << endl;
    return 0;
 
}
 
cs