toge's diary

コンピュータ関連の趣味をつらつらと。

げ、そうなの?

http://d.hatena.ne.jp/yotto-k/20070126#1169824252

std::numeric_limits::min()って正の値の最小値なのか・・・。-std::numeric_limits::max()が最小値なのね・・・しらなかった。でもそれだといろいろ問題ありだよな。本当の最小値を求める方法はないんだろうか?

試した限りだとfloat, double, long doubleあたりだけminimumの値は「正」の最小値になるみたい。
{,signed, unsigned}{char, hosrt, int, long, long long}は問題無し。

とすると型の最小値ってこんな感じになるんだろうか?

std::numeric_limits<T>::is_integer ? std::numeric_limits<T>::denorm_min() : -std::numeric_limits<T>::max()

まあ、どうせ最適化して分岐はなくなるんだろうけど、なんかしっくりこないね。