numeric_limits最低和最低成员函数

时间:2013-04-03 09:25:58

标签: c++ c++11 stl standard-library

numeric_limits<T>::min();
numeric_limits<T>::lowest();

两个函数返回的值有什么不同?

3 个答案:

答案 0 :(得分:18)

C ++ 11标准的第18.3.2.4段规定:

  

static constexpr T min() noexcept;

     

1最小有限值。

     

2对于具有非规范化的浮动类型,返回最小正标准化值。

     

3对所有专业都有意义

     

[...]

     

static constexpr T lowest() noexcept;

     

6有限值x使得没有其他有限值y,其中y <1。 X

     

7对所有is_bounded的特殊化都有意义!= false。

脚注197然后添加了相关的评论:

  

lowest()是必要的,因为并非所有浮点表示都具有最小(最负)的值   最大(最正)有限值的负值。

答案 1 :(得分:8)

对于浮点类型min,返回类型中可表示> 0的最小有限数(即具有最低绝对值!= 0的数字),而lowest返回可表示的最小有限数(即最小绝对值的负数小于-infinity)。

答案 2 :(得分:0)

如果您查看这些功能的参考,例如this one for minthis one for lowest您可以看到有些值不同。