Namespaces
Variants

std::ranges::less

ja.cppreference.net より
 
 
ユーティリティライブラリ
言語サポート
型サポート (基本型、RTTI)
ライブラリ機能テストマクロ (C++20)
プログラムユーティリティ
可変長引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20 で非推奨)
整数比較関数
(C++20)(C++20)(C++20)    
(C++20)
swap と 型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
共通語彙型
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
関数オブジェクト
関数呼び出し
(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()
第1引数が第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 として与えられたとき:

  • 変換後の t(型 P)が変換後の u(型 P)より実装定義のポインタの厳密な全順序において先行する場合、true を返し、そうでなければ false を返す。
  • T から P への変換シーケンス、または U から P への変換シーケンスが等価性保存でない場合、動作は未定義。
  • それ以外の場合:

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

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

expr1 と expr2 の比較結果が厳密な全順序に従うのは、以下の式のうち厳密に1つが true である場合に限る:

注記

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

例

欠陥報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR Applied to Behavior as published Correct behavior
LWG 3530 C++20 ポインタ比較時に構文チェックが緩和されていた 意味論的な要件のみが緩和される

関連項目

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