30

C++ 标准库中,值std::numeric_limits<T>::max()被指定为函数。特定类型的其他属性以常量(如std::numeric_limits<T>::is_signed)的形式给出。所有类型的常量都T作为函数给出,而所有其他常量都作为常量值给出。

这背后的理由是什么?

4

1 回答 1

19

为了扩展 Neil 的评论,std::numeric_limit<T>它适用于任何数字类型,包括浮点数,如果您深入研究comp.lang.c++线程,您会看到可能无法为浮点定义静态变量价值观。

因此,为了保持一致性,他们决定将积分和浮点都放在方法后面。

它会随着 C++0x 而改变,所以有希望。

于 2010-05-04T15:00:19.503 回答