functional_equal_to
functional_equal_to (동등 비교 함수 객체)
std::equal_to는 두 값이 같은지 비교하는 C++ 표준 라이브러리 함수 객체예요. 기본적으로 operator==를 호출해서 동등 여부를 판단해요. C++14부터는 템플릿 인자를 명시하지 않아도 되는 std::equal_to<void> 특수화가 제공되어 타입 추론을 활용할 수 있어요.
출처: cppreference
본문
<functional> 헤더에 정의되어 있어요.
| Defined in header |
||
|---|---|---|
| template < class T > struct equal_to ; | (until C++14) | |
| template < class T = void > struct equal_to ; | (since C++14) |
비교를 수행하는 함수 객체예요. 특수화되지 않은 경우 타입 T에 대해 operator==를 호출해요.
특수화
표준 라이브러리는 T가 지정되지 않은 경우 std::equal_to의 특수화를 제공해요. 이 특수화는 매개변수 타입과 반환 타입을 추론하도록 남겨둬요.
| 특수화 | 설명 |
|---|---|
equal_to<void> (C++14) |
x == y를 구현하며 매개변수 타입과 반환 타입을 추론하는 함수 객체 |
멤버 타입
| 타입 | 정의 |
|---|---|
result_type (C++17에서 deprecated, C++20에서 제거) |
bool |
first_argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
second_argument_type (C++17에서 deprecated, C++20에서 제거) |
T |
이 멤버 타입들은 std::binary_function<T, T, bool>을 공개 상속하여 얻어요. (C++11까지)
멤버 함수
| 함수 | 설명 |
|---|---|
operator() |
인자가 같은지 확인해요 (공개 멤버 함수) |
std::equal_to::operator()
| bool operator ()( const T & lhs , const T & rhs ) const ; | (constexpr since C++14) |
|---|
lhs가 rhs와 같은지 확인해요.
매개변수
| lhs, rhs | - | 비교할 값들 |
|---|
반환값
lhs == rhs이면 true, 그렇지 않으면 false예요.
예외
구현 정의 예외를 던질 수 있어요.
가능한 구현
constexpr bool operator ()( const T & lhs , const T & rhs ) const { return lhs == rhs ; }
같이 보기
| 이름 | 설명 |
|---|---|
equal |
두 요소 집합이 같은지 판별해요 (함수 템플릿 & 알고리즘 함수 객체) |
ranges::equal (C++20) |
|
not_equal_to |
x != y를 구현하는 함수 객체 (클래스 템플릿) |
less |
x < y를 구현하는 함수 객체 (클래스 템플릿) |
ranges::equal_to (C++20) |
x == y를 구현하는 제약된 함수 객체 (클래스) |