GeezerVison is showing cpprefjp.github.io — std::less - cpprefjp C++日本語リファレンス
最終更新日時:
2026年09月18日 23時56分29秒 (JST)
rotarymars
が更新
履歴
編集
class template
<functional>
std:: less
namespace std {
// C++98
template < typename T >
struct less {
bool operator ()( const T & x , const T & y ) const ;
using first_argument_type = T ;
using second_argument_type = T ;
using result_type = bool ;
};
// C++14
template < class T = void >
struct less {
constexpr bool operator ()( const T & x , const T & y ) const ;
using first_argument_type = T ;
using second_argument_type = T ;
using result_type = bool ;
};
template <>
struct less < void > {
template < class T , class U > auto operator ()( T && t , U && u ) const
-> decltype ( std::forward < T > ( t ) < std::forward < U > ( u ));
using is_transparent = unspecified ;
};
// C++20
template < class T = void >
struct less {
constexpr bool operator ()( const T & x , const T & y ) const ;
};
template <>
struct less < void > {
template < class T , class U > auto operator ()( T && t , U && u ) const
-> decltype ( std::forward < T > ( t ) < std::forward < U > ( u ));
using is_transparent = unspecified ;
};
}
概要
lessクラスは、左辺が右辺より小さいかの比較を行う関数オブジェクトである。
この関数オブジェクトは一切のメンバ変数を持たず、状態を保持しない。
メンバ関数
名前
説明
operator ()
x < y と等価
メンバ型
名前
説明
対応バージョン
first_argument_type
operator() の最初の引数の型。T と等価(T が void 以外の場合のみ)
C++17から非推奨 C++20で削除
second_argument_type
operator() の2番目の引数の型。T と等価(T が void 以外の場合のみ)
C++17から非推奨 C++20で削除
result_type
operator() の戻り値の型。bool と等価(T が void 以外の場合のみ)
C++17から非推奨 C++20で削除
is_transparent
operator() が関数テンプレートである事を示すタグ型。 実装依存の型であるがあくまでタグ型であり、型そのものには意味はない。(T が void の場合のみ)
C++14
備考
less<void>のoperator()が組み込みのポインタ比較演算子を呼び出す場合、その比較は厳密な全順序を与える。この順序は、less/greater/less_equal/greater_equalの各特殊化の間で一貫しており、かつ組み込みのポインタ比較演算子が定義される場合はその結果とも一致する。
例
出力
true
参照