21.06.17 16:49 작성
·
192
0
함수 객체라는것이 객체를 생성하고 그걸 () 로 오버로딩 된 함수를 호출 하는것 아닌가요??
auto findit = std::find_if(v.begin(), v.end(), FinditemByItemId(itemid)) 의 finditembyitemid는
그냥 객체를 생성해주는것아닌가요? finditembyitemid(int itemid) 라는 생성자를 통해서요. 디버깅을 해보면 저 저것만으로도 bool operator() 가 실행이 되던데 그게 자동으로 되는것인가요? 그러니깐 즉 finditembyitemdid(itemid) 이것이 조건식으로 부합되는 이유가 궁금합니다. 그저 객체를 생성하는것만 하는것이 아닌.
답변 2
1
2021. 06. 17. 20:44
find_if 코드를 보면 _pred(*_UFirst) 부분에서
operator() 를 호출하고 있습니다.
따라서 실제로 인자로 넣어준 predicate도
operator() or 함수 호출 문법을 지원해야 컴파일이 되는 것이죠.
2022. 08. 30. 16:21
네 그렇습니다.