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