GeezerVison is showing cpprefjp.github.io — std::fmaximum - cpprefjp C++日本語リファレンス
最終更新日時:
2025年09月18日 17時32分28秒 (JST)
Akira Takahashi
が更新
履歴
編集
function
<cmath>
std:: fmaximum (C++26)
namespace std {
constexpr floating-point-type
fmaximum ( floating-point-type x ,
floating-point-type y ); // (1) C++26
constexpr Promoted
fmaximum ( Arithmetic1 x ,
Arithmetic2 y ); // (2) C++26
}
概要
浮動小数点数型の最大値を求める。
(1) : 浮動小数点数型に対するオーバーロード
(2) : 算術型に対するオーバーロード (大きい精度にキャストして計算される。整数はdoubleで計算される)
同じ目的のほかの関数との比較は以下。
関数名
-0.0 と +0.0 の比較
NaN を含む場合の挙動
備考
fmax
未規定
NaN でない方を返す
fmaximum
+0.0 を返す
NaN を返す
エラー伝播を優先
fmaximum_num
+0.0 を返す
NaN でない方を返す
数値を優先
戻り値
引数の最大値を返す。
備考
戻り値は正確で、現在の丸めモードに依存しない。
処理系が IEC 60559 に準拠している場合(std::numeric_limits <T>::is_iec559 () != false)、以下の規定が追加される。
引数のいずれかが NaN の場合、 NaN を返す。
-0.0と+0.0の比較では、+0.0を返す。
例
#include <print>
#include <cmath>
int main () {
std::println ( "fmaximum( 0.0, -1.0) = {:+}" , std::fmaximum ( 0.0 , -1.0 ));
std::println ( "fmaximum(-0.0, +0.0) = {:+}" , std::fmaximum ( -0.0 , + 0.0 ));
std::println ( "fmaximum( 0.0, +1.0) = {:+}" , std::fmaximum ( 0.0 , + 1.0 ));
std::println ( "fmaximum( 0.0, nan) = {:+}" , std::fmaximum ( 0.0 , std::nan ( "" )));
std::println ( "fmaximum( nan, nan) = {:+}" , std::fmaximum ( std::nan ( "" ), std::nan ( "" )));
}
出力例
fmaximum( 0.0, -1.0) = +0
fmaximum(-0.0, +0.0) = +0
fmaximum( 0.0, +1.0) = +1
fmaximum( 0.0, nan) = +nan
fmaximum( nan, nan) = +nan
バージョン
言語
処理系
関連項目
参照