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;
}

난 지금까지 함수를 포인터로써만 넘길수 있다고 알고있었는데 이게 되네?? 원래 되던건데 안좋은 방식이라 포인터 쓰는거임 아님 언제 새로 추가된 문법인거임?
그리고 이렇게 함수넘기면 함수가 복사될려나 레퍼런스가 참조될려나