Namespaces
Variants

std::experimental::ranges:: greater_equal

From cppreference.net
헤더 파일에 정의됨 <experimental/ranges/functional>
template < class T = void >

requires StrictTotallyOrdered < T > ||
Same < T, void > ||
/* < on two const T lvalues invokes a built-in operator comparing pointers */

struct greater_equal ;
(ranges TS)
template <>
struct greater_equal < void > ;
(ranges TS)

비교 연산을 수행하는 함수 객체입니다. 기본 템플릿은 타입 T 의 const lvalue에 대해 operator < 를 호출하고 결과를 부정합니다. 특수화된 greater_equal<void> 는 함수 호출 연산자의 매개변수 타입을 인수로부터 추론합니다(반환 타입은 제외).

greater_equal 의 모든 특수화는 Semiregular 입니다.

목차

멤버 타입

멤버 타입 정의
is_transparent ( greater_equal<void> 특수화의 멤버에만 해당) /* 지정되지 않음 */

멤버 함수

operator()
첫 번째 인수가 두 번째 인수보다 크거나 같은지 확인합니다
(public member function)

std::experimental::ranges::greater_equal:: operator()

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (기본 greater_equal<T> 템플릿의 멤버 전용)
template < class T, class U >

requires StrictTotallyOrderedWith < T, U > ||
/* std::declval<T>() < std::declval<U>() resolves to
a built-in operator comparing pointers */

constexpr bool operator ( ) ( T && t, U && u ) const ;
(2) ( greater_equal<void> 특수화의 멤버 전용)
1) x y 를 비교합니다. return ! ranges:: less <> { } ( x, y ) ; 와 동일합니다.
2) t u 를 비교합니다. return ! ranges:: less <> { } ( std:: forward < T > ( t ) , std:: forward < U > ( u ) ) ; 와 동일합니다.

참고 사항

std::greater_equal 와 달리, ranges::greater_equal 는 여섯 가지 비교 연산자 < , <= , > , >= , == != 가 모두 유효해야 하며( StrictTotallyOrdered StrictTotallyOrderedWith 제약 조건을 통해), ranges::less 를 기반으로 완전히 정의됩니다. 그러나 구현은 operator >= 를 직접 사용할 수 있습니다. 왜냐하면 이러한 개념들은 비교 연산자들의 결과가 일관되도록 요구하기 때문입니다.

예제

참고 항목

x >= y 를 구현하는 함수 객체
(클래스 템플릿)