내가 마킹한 부분 잘 보면

템플릿 클래스이고 Test_fn에서 인자로 반환명 void 파라미터 없는 함수 포인터가

넘어올 것이고 밑에 ()로 호출해줌 따라서 무조건 함수 포인터를 인자로 받겠다고 대못

박아둔거임 T의 기본값을 함수 포인터로 해준다한들

파라미터로 넘어가는 값이 변경이 될 수 있기 때문에

처음에 템플릿 int로 해뒀기 때문에 저기서도 템플릿 선언을 안하면

해당 조건이 성립이 안되서 에러가 뜸

따라서 해당 함수엔 기본 디폴트로 지정해준 타입이 아닌

다른 타입을 주겠다고 못을 박아둬야됨


아 그리고 std::function 타입에 람다 넣을 수 있음

마찬가지로 void 포인터에도 넣을 수 있음

면접 질문이니 꼭 외워두자 ^^