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左値に対して operator < を引数の順序を逆にして呼び出し、その結果を否定します。特殊化 less_equal<void> は、関数呼び出し演算子のパラメータ型を引数から推論します(ただし戻り値の型は除く)。

less_equal のすべての特殊化は Semiregular です。

目次

メンバー型

メンバー型 定義
is_transparent ( less_equal<void> 特殊化のメンバーのみ) /* 未指定 */

メンバー関数

operator()
第1引数が第2引数 以下 であるかどうかをチェックする
(public member function)

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

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (primary template 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 は6つの比較演算子すべて < <= > >= == および != が( StrictTotallyOrdered および StrictTotallyOrderedWith 制約によって)有効であることを要求し、 ranges::less によって完全に定義されます。ただし、実装は operator <= を直接使用することも可能です。なぜなら、これらのコンセプトは比較演算子の結果が一貫していることを要求するためです。

関連項目

関数オブジェクトの実装 x <= y
(クラステンプレート)