Namespaces
Variants

std::experimental::ranges:: less_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 less_equal ;
(ranges TS)
template <>
struct less_equal < void > ;
(ranges TS)

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

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

목차

멤버 타입

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

멤버 함수

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

std::experimental::ranges::less_equal:: operator()

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (기본 less_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) ( less_equal<void> 특수화의 멤버만 해당)
1) x y 를 비교합니다. return ! ranges:: less <> { } ( y, x ) ; 와 동등합니다.
2) t u 를 비교합니다. return ! ranges:: less <> { } ( std:: forward < U > ( u ) , std:: forward < T > ( t ) ) ; 와 동등합니다.

참고 사항

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

예제

참고 항목

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