Namespaces
Variants

std::experimental::ranges:: not_equal_to

From cppreference.net
template < class T = void >

requires EqualityComparable < T > ||
Same < T, void > ||
/* == on two const T lvalues invokes a built-in operator comparing pointers */

struct not_equal_to ;
(ranges TS)
template <>
struct not_equal_to < void > ;
(ranges TS)

比較を実行するための関数オブジェクト。プライマリテンプレートは型 T のconst lvalueに対して operator == を呼び出し、結果を否定します。特殊化 not_equal_to<void> は関数呼び出し演算子のパラメータ型を引数から推論します(ただし戻り値の型は除く)。

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

目次

メンバー型

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

メンバー関数

operator()
引数が 等しくない かどうかをチェックする
(public member function)

std::experimental::ranges::not_equal_to:: operator()

constexpr bool operator ( ) ( const T & x, const T & y ) const ;
(1) (primary template not_equal_to<T> のメンバのみ)
template < class T, class U >

requires EqualityComparableWith < T, U > ||
/* std::declval<T>() == std::declval<U>() が
ポインタを比較する組み込み演算子に解決される場合 */

constexpr bool operator ( ) ( T && t, U && u ) const ;
(2) ( not_equal_to<void> 特殊化のメンバのみ)
1) x y を比較する。 return ! ranges:: equal_to <> { } ( x, y ) ; と等価。
2) t u を比較する。 return ! ranges:: equal_to <> { } ( std:: forward < T > ( t ) , std:: forward < U > ( u ) ) ; と等価。

注記

std::not_equal_to とは異なり、 ranges::not_equal_to == != の両方が( EqualityComparable および EqualityComparableWith 制約によって)有効であることを要求し、 ranges::equal_to に完全に基づいて定義されています。ただし、実装は operator ! = を直接使用することも自由です。なぜなら、これらの概念は == != の結果が一貫していることを要求するからです。

関連項目

x ! = y を実装する関数オブジェクト
(クラステンプレート)