int biggerNum(int a, int b)
{ return (a > b) ? a : b; }
int smallerNum(int a, int b)
{ return (a < b) ? a : b; }
int getFunc(int fn(int,int), int arg1, int arg2)
{ return fn(arg1, arg2); }
int main()
{
int num1 {30};
int num2 {20};
int num3 {100};
cout << getFunc(biggerNum,num1,num2) << " " << getFunc(smallerNum,num3,num2) << endl;
cout << getFunc([](int a1, int a2)->int{ return a1 + a2; }, 23, 33) << endl;
}
난 지금까지 함수를 포인터로써만 넘길수 있다고 알고있었는데 이게 되네?? 원래 되던건데 안좋은 방식이라 포인터 쓰는거임 아님 언제 새로 추가된 문법인거임?
그리고 이렇게 함수넘기면 함수가 복사될려나 레퍼런스가 참조될려나
저게 된다고? 신기하다
해당 댓글은 삭제되었습니다.
*********붙여도 똑같이 취급된다고 어디서 들은거같은데 - dc Cpp
캡쳐가 없는 람다는 C의 함수포인터와 호환됨
이 댓글은 게시물 작성자가 삭제하였습니다.
오호 그렇네 getFunc([&](int a1, int a2)->int{ return num1; } 하니까 컴파일 에러생김
어이어이 좆플플은 일급함수도 없는거냐구ㅋㅋㅋ