Muh*_*mad 19 c++ stl standard-library c++11
numeric_limits<T>::min();
numeric_limits<T>::lowest();
Run Code Online (Sandbox Code Playgroud)
两个函数返回的值有什么不同?
And*_*owl 19
C++ 11标准的第18.3.2.4段规定:
static constexpr T min() noexcept;1最小有限值.
2对于具有非规范化的浮动类型,返回最小正标准化值.
3对所有专业都有意义
[...]
static constexpr T lowest() noexcept;6有限值x,使得y <x时没有其他有限值y.
7对所有is_bounded的特殊化都有意义!= false.
脚注197然后添加了相关的评论:
lowest()是必要的,因为并非所有浮点表示都具有最小(最负)的值,该值是最大(最正)有限值的负值.
对于浮点类型,min返回在类型中可> 0表示的最小有限数(即具有最低绝对值的数字!= 0),同时lowest返回可表示的最小有限数(即,小于的最大绝对值的负数-infinity).