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, 5, 10); return length5; } int main(int argc, char *argv[]) { auto length5_10 = rect_length5_10(); cout << "end main " << endl; return 0; } | cs |
'Generic Programming' 카테고리의 다른 글
enable if 두번째 예제 is Same 추가 (0) | 2019.03.30 |
---|---|
enable if 사용법 (0) | 2019.03.30 |
가변인자 템플릿 파라미터 팩 재귀호출 예제 (0) | 2019.03.30 |
템플릿 예제 (0) | 2019.03.23 |
가변인자 템플릿 예제 (0) | 2019.03.22 |