名前空間
変種
操作

std::ranges::less

From cppreference.com
< cpp‎ | utility‎ | functional
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
関数オブジェクト
関数の呼び出し
(C++17)(C++23)
恒等関数オブジェクト
(C++20)
透過的な演算子ラッパー
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

古いバインダとアダプタ
(C++17まで*)
(C++17まで*)
(C++17まで*)
(C++17まで*)  
(C++17まで*)
(C++17*まで)(C++17*まで)(C++17*まで)(C++17*まで)
(C++20まで*)
(C++20まで*)
(C++17*まで)(C++17*まで)
(C++17*まで)(C++17*まで)

(C++17まで*)
(C++17*まで)(C++17*まで)(C++17*まで)(C++17*まで)
(C++20まで*)
(C++20まで*)
 
ヘッダ <functional> で定義
struct less;
(C++20以降)

比較を実行するための関数オブジェクト。引数から関数呼び出し演算子のパラメータ型を推論します(返り値の型は推論しません)。

目次

[編集] ネストされた型

ネストされた型 定義
is_transparent unspecified

[編集] メンバ関数

operator()
最初の引数が2番目の引数より小さいかどうかをチェックします。
(public member function)

std::ranges::less::operator()

template< class T, class U >
constexpr bool operator()( T&& t, U&& u ) const;

std::forward<T>(t) < std::forward<U>(u)expr とします。

  • それ以外の場合
  • expr の結果を返します。
  • もし std::totally_ordered_with<T, U> がモデル化されない場合、動作は未定義です。

このオーバーロードは、std::totally_ordered_with<T, U> が満たされている場合にのみ、オーバーロード解決に参加します。

もし、型 T の式 expr1 と型 U の式 expr2 が存在し、 expr1expr2 の比較結果が 厳密全順序 (ルールは以下で定義) に違反する場合、動作は未定義です。

expr1expr2 の比較結果は、以下のいずれかの式が true である場合にのみ厳密全順序に従います。

[編集] 注記

std::less とは異なり、 std::ranges::less は、 totally_ordered_with 制約により、6つの比較演算子 <, <=, >, >=, ==, != がすべて有効であることを要求します。

[編集]

[編集] 不具合報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 3530 C++20 ポインタを比較する際の構文チェックが緩和されました。 意味的な要件のみが緩和されています。

[編集] 関連項目

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