std::experimental::ranges:: less
|
ヘッダーで定義
<experimental/ranges/functional>
|
||
|
template
<
class
T
=
void
>
requires StrictTotallyOrdered
<
T
>
||
|
(ranges TS) | |
|
template
<>
struct less < void > ; |
(ranges TS) | |
比較を実行するための関数オブジェクト。プライマリテンプレートは型
T
のconst lvalueに対して
operator
<
を呼び出す。
less<void>
特殊化は、関数呼び出し演算子のパラメータ型を引数から推論する(ただし戻り値の型は除く)。
less
のすべての特殊化は
Semiregular
です。
目次 |
メンバー型
| メンバー型 | 定義 |
is_transparent
(
less<void>
特殊化のメンバーのみ)
|
/* 未指定 */ |
メンバー関数
|
operator()
|
第1引数が第2引数より
小さい
かどうかをチェックする
(public member function) |
std::experimental::ranges::less:: operator()
|
constexpr
bool
operator
(
)
(
const
T
&
x,
const
T
&
y
)
const
;
|
(1) |
(基本テンプレート
less<T>
のみのメンバ)
|
|
template
<
class
T,
class
U
>
requires StrictTotallyOrderedWith
<
T, U
>
||
|
(2) |
(特殊化
less<void>
のみのメンバ)
|
t
と
u
を比較する。
return
std::
forward
<
T
>
(
t
)
<
std::
forward
<
U
>
(
u
)
;
と等価。ただし、その式がポインタを比較する組み込み
operator
<
の呼び出しに解決される場合は除く。
(1)
または
(2)
の呼び出しが型
P
のポインタを比較する組み込み演算子を呼び出す場合、結果は代わりに以下のように決定される:
-
最初の引数の(変換された可能性のある)値が、型
Pの全てのポインタ値に対する実装定義の厳密な全順序において、2番目の引数の(変換された可能性のある)値に先行する場合、 true を返す。この厳密な全順序は、組み込み演算子<、>、<=、>=によって課される半順序と整合性がある。 - それ以外の場合、 false を返す。
動作は、
T
と
U
から
P
への変換シーケンスが両方とも等価性を保存する(下記参照)場合を除いて未定義である。
等価性保存
式が 等価性を保存する とは、等しい入力が与えられたときに等しい出力をもたらすことである。
- 式への入力は、その被演算子から構成される。
- 式の出力は、その結果と、式によって変更される全ての被演算子(存在する場合)から構成される。
等価性を保存することが要求されるすべての式は、さらに 安定性 が要求される:そのような式の2回の評価は、同じ入力オブジェクトに対して、それらの入力オブジェクトに対する明示的な変更がない限り、等しい出力を持たなければならない。
注記
std::less
とは異なり、
ranges::less
は6つの比較演算子すべて
<
、
<=
、
>
、
>=
、
==
および
!=
が(
StrictTotallyOrdered
および
StrictTotallyOrderedWith
制約を通じて)有効であることを要求します。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
x
<
y
を実装する関数オブジェクト
(クラステンプレート) |