Namespaces
Variants

C++ named requirements: Predicate

From cppreference.net
C++ named requirements

Predicate 요구 사항은 BooleanTestable 값을 반환하는 호출 가능 객체를 설명합니다.

Predicate 는 일반적으로 입력 데이터(개별 객체/컨테이너)와 predicate를 받는 알고리즘과 함께 사용되며, 이 predicate는 입력 데이터에 대해 호출되어 이후 동작을 결정합니다. C++ 표준 라이브러리에서 predicate 사용의 몇 가지 예시는 다음과 같습니다:

  • std::all_of , std::any_of , std::none_of 요소 배열과 조건자를 입력으로 받습니다. 개별 입력 요소에 대해 조건자를 호출하고, 모든/어떤/어떤 요소도 조건자가 true를 반환하는 경우 true를 반환합니다.
  • std::find_if 요소들의 시퀀스와 predicate를 취합니다. predicate가 true 와 동일한 값을 반환하는 시퀀스 내 첫 번째 요소를 반환합니다.

위에서 설명된 알고리즘 기능에 대한 설명은 기본적인 것으로, Predicate 을 간단한 용어로 설명하기 위한 것입니다. 상세한 정보는 각 개별 페이지를 참조하십시오.

다시 말해, 알고리즘이 Predicate pred 와 반복자 first 를 취한다면, 주어진 술어를 사용하여 first 반복자가 가리키는 타입의 객체를 다음과 같은 구문을 통해 테스트할 수 있어야 합니다: if ( pred ( * first ) ) { /*...*/ } .

함수 객체 pred 는 역참조된 반복자를 통해 비상수 함수를 적용해서는 안 되며, const 인수를 수용해야 합니다. 인수가 const 인지 비- const 인지에 관계없이 동일한 동작을 가져야 합니다. 이 함수 객체는 함수에 대한 포인터이거나 적절한 함수 호출 연산자를 가진 타입의 객체일 수 있습니다.

요구사항

결함 보고서

다음 동작 변경 결함 보고서는 이전에 게시된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 3031 C++98 const 값에 대한 요구사항이 불충분함 요구사항 강화됨

참고 항목

(C++20)
호출 가능 타입이 부울 조건자임을 명시
(concept)