std::experimental::ranges:: equal_to
|
헤더 파일에 정의됨
<experimental/ranges/functional>
|
||
|
template
<
class
T
=
void
>
requires EqualityComparable
<
T
>
||
|
(ranges TS) | |
|
template
<>
struct equal_to < void > ; |
(ranges TS) | |
비교 연산을 수행하는 함수 객체입니다. 기본 템플릿은 타입
T
의 const lvalue에 대해
operator
==
를 호출합니다. 특수화
equal_to<void>
는 함수 호출 연산자의 매개변수 타입을 인자로부터 추론합니다(반환 타입은 제외).
equal_to
의 모든 특수화는
Semiregular
입니다.
목차 |
멤버 타입
| 멤버 타입 | 정의 |
is_transparent
(
equal_to<void>
특수화의 멤버로만 존재)
|
/* 지정되지 않음 */ |
멤버 함수
|
operator()
|
인수가
동일한지
확인합니다
(public member function) |
std::experimental::ranges::equal_to:: operator()
|
constexpr
bool
operator
(
)
(
const
T
&
x,
const
T
&
y
)
const
;
|
(1) |
(기본
equal_to<T>
템플릿의 멤버 전용)
|
|
template
<
class
T,
class
U
>
requires EqualityComparableWith
<
T, U
>
||
|
(2) |
(
equal_to<void>
특수화의 멤버 전용)
|
t
와
u
를 비교합니다. 해당 표현식이 포인터를 비교하는 내장
operator
==
호출로 해결되는 경우를 제외하고
return
std::
forward
<
T
>
(
t
)
==
std::
forward
<
U
>
(
u
)
;
와 동등합니다.
(1)
또는
(2)
호출이
P
타입의 포인터를 비교하는 내장 연산자를 호출할 경우, 결과는 다음과 같이 결정됩니다:
-
첫 번째 인자의 (변환된) 값과 두 번째 인자의 (변환된) 값 중 하나가
P타입의 모든 포인터 값에 대한 구현 정의 엄격 전체 순서에서 다른 하나보다 앞서는 경우 false 를 반환합니다. 이 엄격 전체 순서는 내장 연산자<,>,<=,>=에 의해 부과된 부분 순서와 일관됩니다. - 그렇지 않은 경우 (어느 것도 다른 것을 앞서지 않음), true 를 반환합니다.
T
와
U
에서
P
로의 변환 시퀀스가 모두 등식 보존(equality-preserving)인 경우가 아니면 동작은 정의되지 않습니다 (아래 참조).
등식 보존(Equality preservation)
표현식은 동일한 입력이 주어졌을 때 동일한 출력을 결과로 내면 등식 보존 입니다.
- 표현식의 입력은 해당 피연산자로 구성됩니다.
- 표현식의 출력은 해당 결과와 표현식에 의해 수정된 모든 피연산자(있는 경우)로 구성됩니다.
등식 보존이 요구되는 모든 표현식은 추가로 안정적(stable) 이어야 합니다: 동일한 입력 객체로 이러한 표현식을 두 번 평가할 때 해당 입력 객체에 대한 명시적인 중간 수정이 없으면 동일한 출력을 가져야 합니다.
참고 사항
std::equal_to
와 달리,
ranges::equal_to
는
==
와
!=
모두가 유효해야 합니다 (
EqualityComparable
와
EqualityComparableWith
제약 조건을 통해).
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
참고 항목
|
x
==
y
를 구현하는 함수 객체
(클래스 템플릿) |