인프런 커뮤니티 질문&답변
함수 객체 질문
작성
·
294
0
함수 객체라는것이 객체를 생성하고 그걸 () 로 오버로딩 된 함수를 호출 하는것 아닌가요??
auto findit = std::find_if(v.begin(), v.end(), FinditemByItemId(itemid)) 의 finditembyitemid는
그냥 객체를 생성해주는것아닌가요? finditembyitemid(int itemid) 라는 생성자를 통해서요. 디버깅을 해보면 저 저것만으로도 bool operator() 가 실행이 되던데 그게 자동으로 되는것인가요? 그러니깐 즉 finditembyitemdid(itemid) 이것이 조건식으로 부합되는 이유가 궁금합니다. 그저 객체를 생성하는것만 하는것이 아닌.
퀴즈
54%나 틀려요. 한번 도전해보세요!
C++11에서 auto 키워드의 주된 역할은 무엇일까요?
런타임 시 타입 확인
수동 메모리 관리
컴파일 시 자동 타입 추론
동적 배열 생성
답변 2
1
Rookiss
지식공유자
find_if 코드를 보면 _pred(*_UFirst) 부분에서
operator() 를 호출하고 있습니다.
따라서 실제로 인자로 넣어준 predicate도
operator() or 함수 호출 문법을 지원해야 컴파일이 되는 것이죠.





네 그렇습니다.