std::islessgreater
From cppreference.com
| ヘッダー <cmath> で定義 |
||
| (1) | ||
bool islessgreater( float x, float y ); bool islessgreater( double x, double y ); |
(C++11以降) (C++23まで) |
|
| constexpr bool islessgreater( /* floating-point-type */ x, /* floating-point-type */ y ); |
(C++23から) | |
| ヘッダー <cmath> で定義 |
||
| template< class Arithmetic1, class Arithmetic2 > bool islessgreater( Arithmetic1 x, Arithmetic2 y ); |
(A) | (C++11以降) (C++23 以降 constexpr) |
1) 浮動小数点数 `x` が浮動小数点数 `y` より小さいか、または大きいかを、浮動小数点例外を設定せずに判定します。ライブラリは、`x` および `y` のパラメータの型として、すべての cv-unqualified な浮動小数点型のオーバーロードを提供します。(C++23以降)
A) その他の算術型の組み合わせすべてに対して、追加のオーバーロードが提供されます。
目次 |
[編集] パラメータ
| x, y | - | 浮動小数点または整数値 |
[編集] 戻り値
`x < y || x > y` の場合は `true`、それ以外の場合は `false`。
[編集] 注釈
浮動小数点数に対する組み込みの `operator<` および `operator>` は、引数のいずれか一方または両方が NaN の場合に `FE_INVALID` を発生させる可能性があります。この関数は、`x < y || x > y` 式の「安全な」バージョンです。
追加のオーバーロードは (A) とまったく同じように提供される必要はない。それらは、最初の引数 num1 と2番目の引数 num2 に対して以下を保証するのに十分である必要がある。
|
(C++23まで) |
|
`num1` および `num2` が算術型の場合、`std::islessgreater(num1, num2)` は `std::islessgreater(static_cast*common-floating-point-type*/>(num1), static_cast*common-floating-point-type*/>(num2))` と同じ効果を持ちます。ここで、`/*common-floating-point-type*/` は、`num1` と `num2` の型の間で、最も高い浮動小数点変換ランクおよび最も高い浮動小数点変換サブランクを持つ浮動小数点型です。整数型の引数は、`double` と同じ浮動小数点変換ランクを持つとみなされます。 そのような最高のランクとサブランクセを持つ浮動小数点型が存在しない場合、オーバーロード解決は提供されたオーバーロードから使用可能な候補を導出しません。 |
(C++23から) |
[編集] 関連項目
| (C++11) |
最初の浮動小数点数引数が2番目より小さいかチェックする (関数) |
| (C++11) |
最初の浮動小数点数引数が2番目より大きいかチェックする (関数) |
| C言語のドキュメント (`islessgreater` について)
| |