functional_greater

functional_greater (greater 함수 객체)

이 페이지는 C++ 표준 라이브러리의 std::greater 함수 객체에 대해 설명해요. std::greater는 두 값을 비교해서 첫 번째 값이 두 번째 값보다 큰지 확인하는 데 사용해요. 주로 정렬이나 컨테이너의 비교 연산자로 활용할 수 있어요.

출처: cppreference

본문

<functional> 헤더에 정의되어 있어요.

정의
template < class T > struct greater ; (C++14 이전)
template < class T = void > struct greater ; (C++14 이후)

비교를 수행하는 함수 객체예요. 기본 템플릿은 T 타입에 대해 operator >를 호출해요.

특수화

greater<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::greater::operator()

bool operator ()( const T & lhs , const T & rhs ) const ;

(constexpr since C++14)

lhsrhs보다 큰지 확인해요.

매개변수

lhs, rhs - 비교할 값

반환값

lhs > rhs를 반환해요.

T가 포인터 타입이라면, 결과는 구현에서 정의하는 엄격한 전체 순서(strict total order)와 일관성이 있어요.

예외

구현에서 정의하는 예외를 던질 수 있어요.

가능한 구현

constexpr bool operator ()( const T & lhs , const T & rhs ) const { return lhs > rhs ; // assumes that the implementation handles pointer total order }

결함 보고서

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

DR 적용 대상 발표된 동작 올바른 동작
LWG 2562 C++98 포인터 전체 순서가 일관되지 않을 수 있었어요 일관성이 보장돼요

더 알아보기

less x < y를 구현하는 함수 객체 (클래스 템플릿)
ranges::greater (C++20) x > y를 구현하는 제약된 함수 객체 (클래스)

더 알아보기 (Learn more)

cppreference