名前空間
変種
操作

std::experimental::ranges::less_equal

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
汎用ユーティリティライブラリ
ユーティリティコンポーネント
関数オブジェクト
less_equal
メタプログラミングと型特性
タグ付きペアとタプル
                          
タグ指定子
                                      
                          
 
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()
最初の引数が2番目の引数より小さい等しいかを確認します
(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) xyを比較します。return !ranges::less<>{}(y, x);と同等です。
2) tuを比較します。return !ranges::less<>{}(std::forward<U>(u), std::forward<T>(t));と同等です。

[編集] 注記

std::less_equalとは異なり、ranges::less_equalは、(StrictTotallyOrderedおよびStrictTotallyOrderedWith制約を通じて)6つの比較演算子<<=>>===!=すべてが有効であることを要求し、完全にranges::lessで定義されています。ただし、これらのコンセプトは比較演算の結果の一貫性を要求するため、実装は直接operator<=を使用しても構いません。

[編集]

[編集] 関連項目

x <= y を実装する関数オブジェクト
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)