ranges_equal_to

ranges_equal_to (동등성 비교 함수 객체)

이 페이지는 C++20에서 도입된 std::ranges::equal_to 함수 객체에 대해 다루어요. 이 함수 객체는 두 인자가 같은지 비교하는 데 사용되며, 인자의 타입은 호출 시점에 추론돼요. std::equal_to와 달리 != 연산자의 유효성과 인자 타입의 동질 비교 가능성까지 요구해요.

출처: cppreference

본문

중첩 타입

중첩 타입 정의
is_transparent 불명 (unspecified)

멤버 함수

멤버 함수 설명
operator() 인자가 같은지 확인해요 (공개 멤버 함수)

std::ranges::equal_to::operator()

template < class T , class U > constexpr bool operator ()( T && t , U && u ) const ;

주어진 표현식 std :: forward < T > ( t ) == std :: forward < U > ( u )를 expr이라고 할 때:

  • expr이 포인터를 비교하는 내장 operator == 호출로 이어진다면, tu의 복합 포인터 타입을 P라고 할 때:
    • 변환된 두 포인터(타입 P)에 대해, 한 포인터가 구현 정의된 포인터 전체 순서에서 다른 포인터보다 앞선다면 false를 반환하고, 그렇지 않으면 true를 반환해요. T에서 P로의 변환 시퀀스 또는 U에서 P로의 변환 시퀀스가 동등성을 보존하지 않는다면, 동작은 정의되지 않아요.
  • 그 외의 경우:
    • expr의 결과를 반환해요. std :: equality_comparable_with < T , U >가 모델링되지 않는다면, 동작은 정의되지 않아요.

이 오버로드는 std :: equality_comparable_with < T , U >가 충족될 때만 오버로드 해석에 참여해요.

참고 사항

std::equal_to와 비교했을 때, std::ranges::equal_to는 추가로 !=가 유효해야 하고, 두 인자 타입 모두 (동질적으로) 자기 자신과 비교 가능해야 해요 (equality_comparable_with 제약을 통해).

예제

이 섹션은 불완전해요. 이유: 예제 없음

결함 보고서

다음 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었어요.

DR 적용 대상 발표된 동작 올바른 동작
LWG 3530 C++20 포인터 비교 시 구문 검사가 완화되었어요 의미론적 요구 사항만 완화돼요

같이 보기

equal_to x == y를 구현하는 함수 객체 (클래스 템플릿) [편집]

더 알아보기 (Learn more)

cppreference